2016-04-06 14 views
1

1000 dfs listesi var, bunların her biri aynı ilk 9 sütun başlığına sahip, ancak 10. sütun tüm 1000 dfs için farklı olan örnek ismidir. 10. sütun için 0 ile satırları silmeye çalışıyorum, ancak sütun adı için ne koymak emin değilim. Df $ V10 kullanmak bana istenen sonuçları vermiyor ve her df için farklı olduğu için gerçek sütun başlığı adını kullanamıyorum.referans nth sütunu, sütun ismine başvurmadan

> 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),]) 

Ve sonuç:

Bu kullanıyorum budur

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

Ben 10 sütunda sıfır olmayan girişler olduğunu biliyoruz

. Bu R acemi için herhangi bir öneriniz var mı?

+1

Awesome. Teşekkürler @akrun, şimdi bir şans vereceğim! – nchimato

+1

Bir çekicilik gibi çalıştım. Teşekkürler @akrun! – nchimato

cevap

1

Sütun veya satırlar, alt kümeye dizin olarak sayısal/mantıksal/karakter (adlar) alabilir. OP list, sütun adlarıyla farklı data.frame10 içerir, 10. sütun için 'sayısal' indeksini kullanabiliriz.

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