Как найти минимальную позицию 1, идущую по столбцу в списке фреймов данных? - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь найти минимальную позицию, то есть крайнюю левую позицию первого столбца 1 в списке двоичных фреймов данных. Я использовал следующее, чтобы получить первую 1 по строке, которая работает, но когда я пытаюсь что-то подобное для столбца, я получаю тот же результат. У кого-нибудь есть предложения относительно того, что может быть не так или что я должен попробовать?

files <- list.files(pattern="*.csv")
file_list <- lapply(files, read.table)

first_1 <- sapply(file_list, function(x) min(which(t(x) == 1, arr.ind = T))) 

1 Ответ

0 голосов
/ 07 ноября 2019

Здесь мы можем напрямую получить минимальный индекс столбца, создав логический вектор с colSums

sapply(file_list, function(x) which(colSums(x == 1) > 0)[1])

data

file_list <- list(data.frame(col1 = c(5, 3, 1, 2, 3), col2 = c(3, 4, 5, 1, 4)),
            data.frame(col1 = c(5, 3, 2, 2, 1), col2 = c(3, 4, 5, 1, 4)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...