我正在處理5個我想要過濾的數據框(如果它們與正則表達式匹配,則刪除一些行)。因爲所有的數據框都是相似的,使用相同的變量名,我將它們存儲在一個列表中,並且正在迭代它。但是,當我想保存每個原始數據框的過濾數據時,我發現它會創建一個i_filtered(而不是dfName_filtered),因此每次循環運行時都會被覆蓋。 下面是我在循環:在R循環中創建數據框並命名它
for (i in list_all){
i_filtered1 <- i[i$chr != filter1,]
i_filtered2 <- i[i$chr != filter2,]
#Write the result filtered table in a csv file
#Change output directory if needed
write.csv(i_filtered2, file="/home/tama/Desktop/i_filtered.csv")
}
正如我所說的,過濾器1和過濾器2只是正則表達式,我使用的CHR列來過濾數據。 將原始名稱+「_filtered」分配給新數據框的正確方法是什麼?
在此先感謝
編輯補充信息: 每個數據幀都有這些變量(但值可以更改)
chr start end length
chr1 10400 10669 270
chr10 237646 237836 191
chrX 713884 714414 531
chrUn 713884 714414 531
chr1 762664 763174 511
chr4 805008 805571 564
我儲存了所有他們的列表:
list_all <- list(heep, oe, st20_n, st20_t,all)
list_all <- lapply(list_all, na.omit)
該過濾器:
#Get rid of random chromosomes
filter1=".*random"
#Get rid of undefined chromosomes
filter2 = "ĉhrUn.*
我在尋找的輸出是:
heep_filtered1
heep_filtered2
oe_filtered1
oe_filtered2
etc
添加一個最小可重現的例子。 – Alex
[使用數據幀列表](http://stackoverflow.com/a/24376207/903061)。 – Gregor
@Alex,增加了更多信息。 –