0

我有很多数据框要打开并假设它在名为“CNV”的文件夹中

Ss 我读了这个链接[1]:Opening all files in a folder, and apply a function ,但我仍然感到困惑。

假设我在桌面的CNV文件夹中有文件名 a, b ,c ,d ,e .... z

在这些文件中具有相同的列

Sample, start, stop, event, probe, length
qd1234,  2666,  2888,  CN gain,  23,  235    
cc234,   1000,   1500,  CN loss,  5,  500

我的问题是如何一次打开所有文件,然后打开所有这些文件

我想选择探针数大于 5、CN 损耗探针数大于 3、探针/长度小于 30 的 CN 增益

预期结果:

a
Sample, start, stop, event, probe, length, length/probe
qd1234,  2666,  2888,  CN gain,  23,  235, 9 
qd1534,  1200,  1800,  CN loss,  60,  600  10
b
Sample, start, stop, event, probe, length, length/probe
qd234,  2666,  2888,  CN gain,  23,  235, 9 
qd534,  1200,  1800,  CN loss,  60,  600  10
4

1 回答 1

1

我想你可能正在寻找这样的东西。当我创建时crit,我查看刚刚导入的列,data.frame看看哪些行满足指定的标准。基于此,我将完整子集子集data.frame并返回(函数返回最后一行)子集。

my.files <- list.files()

my.df <- sapply(my.files, function(x) {
  read.in <- read.table(x, header = TRUE, sep = ",")
  crit <- with(read.in, which(probe > 5 & probe > 3 & (probe/length) < 30))
  read.in[crit, ]
}, simplify = FALSE)

由于我们没有可重现的示例,因此我将在下面演示此子集的实际工作原理。

set.seed(357)
xy <- data.frame(x = 1:10, y = runif(10), z = rnorm(10))
xy # we expect row 6 to satisfy all the conditions
xy[with(xy, which(x > 5 & y < 0.5 & z < 0)), ]
于 2013-08-09T10:07:46.197 回答