我在R中使用10個列表(files1
,files2
,files3
,files3
,... files10
)。每個列表包含多個數據幀。R - 使用for循環中的列表名稱
現在,我想從每個列表中的每個數據幀提取一些值。
我打算用一個for循環
nt = c("A", "C", "G", "T")
for (i in files1) {
for (j in nt) {
name = paste(j, i, sep = "-") # here I want as output name = "files1-A". However this doesn't work. How can I get the name of the list "files1"?
colname = paste("percentage", j, sep = "") # here I was as output colname = percentageA. This works
assign(name, unlist(lapply(i, function(x) x[here I want to use the column with the name "percentageA", so 'colname'][x$position==1000])))
}
}
所以,我有使用列表的名稱,並將其分配給變量的麻煩。
我知道只通過第一個列表循環,但是它也有可能立即循環所有我的列表?
換句話說:如何將下面的代碼放在for循環中?
A_files1 = unlist(lapply(files1, function(x) x$percentageA[x$position==1000]))
C_files1 = unlist(lapply(files1, function(x) x$percentageC[x$position==1000]))
G_files1 = unlist(lapply(files1, function(x) x$percentageG[x$position==1000]))
T_files1 = unlist(lapply(files1, function(x) x$percentageT[x$position==1000]))
A_files2 = unlist(lapply(files2, function(x) x$percentageA[x$position==1000]))
C_files2 = unlist(lapply(files2, function(x) x$percentageC[x$position==1000]))
G_files2 = unlist(lapply(files2, function(x) x$percentageG[x$position==1000]))
T_files2 = unlist(lapply(files2, function(x) x$percentageT[x$position==1000]))
....
A_files10 = unlist(lapply(files10, function(x) x$percentageA[x$position==1000]))
C_files10 = unlist(lapply(files10, function(x) x$percentageC[x$position==1000]))
G_files10 = unlist(lapply(files10, function(x) x$percentageG[x$position==1000]))
T_files10 = unlist(lapply(files10, function(x) x$percentageT[x$position==1000]))
確實'names(fileS1)'return'NULL'? –
@ joel.wilson:是的確如此 – user1987607
發佈樣本數據,例如2-3個文件以獲得工作實例將會很棒。請參閱[如何製作可重現的示例](http:// stackoverflow。COM /問題/ 5963269 /如何對化妝一個偉大-R-重複性,例如/ 5965451#5965451)。一般來說,爲了讀取多個文件,我創建了一個從單個文件返回數據幀的函數(variable1,variable2)。然後,我使用帶有'group_by(variable1,variable2)''do(myfunction(。$ variable1,。$ variable2))'的'dplyr'包來讀取多個文件。這對於獲取單個數據幀中的所有數據非常重要。 –