r语言 - 我正在尝试在同一目录中的许多二进制矩阵 csv 文件中查找包含三个或更多 1 的行数?



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

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

如果 1 不需要是连续的,这里有一种计算 3 个 1 的行的方法。

Firs 创建一个随机 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))

最新更新