在dataframe名称变化的循环中操作dataframe
我有六个dataframe,z1,z2,… z6。 (从一个excel文件的六张不同的表中读取)。
我需要对这些数据框进行子集化并build立一些模型。 每个过程都是相同的。 我希望能在循环中做到这一点,但无法find正确的语法。 (我试图使用粘贴和分配function,但它没有帮助)。 比如我想要
for (i in 1:6){ Z=subset(Zi,Zi$var1==1) }
Zi应该是已经定义好的Z1,Z2,Z3。 我可以在每次迭代中通过粘贴function生成一个variablesZ1,Z2
temp = paste('Z',i,sep ='')但是我不能在上面的代码中使用'temp'代替Zi。
有关于类似问题的其他线程的讨论,但我无法find任何直接相关的问题。 如果我失去了一些东西,请将我指向正确的线索。
我们使用mget
获取list
的“值”,循环遍历list
( lapply(..)
),并根据“var1”列对行进行子集化。
lapply(mget(paste0('Z', 1:6)), subset, subset=var1==1)
数据的列名是否相似? 如果是这样,你可能想这样做:
library(dplyr) "Z" %>% paste0(1:6) %>% mget %>% bind_rows(.id = "source") %>% filter(var1 == 1)