Я пытаюсь найти количество строк, которые содержат три или более единиц в количестве двоичных матричных CSV-файлов в одном каталоге? - PullRequest
0 голосов
/ 12 октября 2019

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

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

1 Ответ

0 голосов
/ 12 октября 2019

Если единицы не должны быть последовательными, вот способ подсчета строк с 3 1.

Ели создают матрицу случайных 0 и 1, чтобы проверить код. Затем определите функцию rowOnes, которая выполняет реальную работу, и запустите ее на примере матрицы mat.

set.seed(1234)
mat <- matrix(rbinom(24, 1, 0.5), nrow = 4)

rowOnes <- function(X, na.rm = FALSE) rowSums(X == 1, na.rm = na.rm)
rowOnes(mat)
#[1] 2 4 2 3

sum(rowOnes(mat) >= 3)
#[1] 2

Теперь *apply указанная выше стратегия для списка матриц.

sapply(files, function(x) sum(rowOnes(x) >= 3))
...