在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的“值”,循环遍历listlapply(..) ),并根据“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)