引用第n列而不引用列名

时间:2016-04-06 13:16:39

标签: r

我有一个1000个dfs的列表,每个dfs都有相同的前9列标题,但第10列是样本名称,对于所有1000个dfs都是不同的。我试图删除第10列的0行,但我不确定要为列名添加什么。使用df $ V10并没有给我想要的结果,我不能使用实际的列标题名称,因为每个df都不同。

这就是我正在使用的:

> names(t[[2]])
 [1] "CHROM"        "POS"          "ID"           "REF"          "ALT"          "QUAL"        
 [7] "FILTER"       "INFO"         "FORMAT"       "s_SRR1198016"

> names(t[[3]])
 [1] "CHROM"        "POS"          "ID"           "REF"          "ALT"          "QUAL"        
 [7] "FILTER"       "INFO"         "FORMAT"       "s_SRR1267825"

> t0 <- lapply(t, function(x) x[!(x$V10==0),])

结果:

> head(t0[[1]])
 [1] CHROM        POS          ID           REF          ALT          QUAL         FILTER      
 [8] INFO         FORMAT       s_SRR1198015
<0 rows> (or 0-length row.names)

当我知道第10列中有非零条目时。对这个R新手的任何建议?

1 个答案:

答案 0 :(得分:1)

列或行可以将数字/逻辑/字符(名称)作为子集的索引。由于OP的list包含列名不同的data.frame,我们可以使用“数字”和“数字”。第10列的索引。

 lapply(t, function(x) x[x[,10]!=0,])