我有一个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新手的任何建议?
答案 0 :(得分:1)
列或行可以将数字/逻辑/字符(名称)作为子集的索引。由于OP的list
包含列名不同的data.frame
,我们可以使用“数字”和“数字”。第10列的索引。
lapply(t, function(x) x[x[,10]!=0,])