我正在寻找一种方法来查找存储在同一工作目录中的单个 .csv 文件中的多个二进制矩阵中由三个或更多 1 组成的行数。R中有没有办法做这样的事情?我已经阅读了设置工作目录中的所有文件,但我不确定下一步该怎么做......
file_list <- list.files(pattern="*.csv")
files <- lapply(file_list, read.delim)
我正在寻找一种方法来查找存储在同一工作目录中的单个 .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))