我试图在同一目录中的多个二进制矩阵 csv 文件中查找包含三个或更多 1 的行数?

I am trying to find the number of rows that contain three or more 1s in a number of binary matrix csv files in the same directory?

我正在寻找一种方法来查找存储在同一工作目录中各个 .csv 文件中的多个二进制矩阵中由三个或更多个 1 组成的行数。 R有没有办法做这样的事情?我已经阅读了设置工作目录中的所有文件,但我不确定下一步该做什么...

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

如果1不需要连续,这里有一种方法可以计算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))