我在使用R和stackoverflow上是新手。我试图处理一个数据框列表,并遇到了以下问题(希望这是一个好的复制示例)。假设我有一个包含4列的3个数据框的列表(我的真实代码包含10个数据框,每个数据框有20列):
df1 <- data.frame(k=20:0, h_1=rnorm(21), h_2=rnorm(21), h_3= rnorm(21))
df2 <- data.frame(k=20:0, h_1=rnorm(21), h_2=rnorm(21), h_3= rnorm(21))
df3 <- data.frame(k=20:0, h_1=rnorm(21), h_2=rnorm(21), h_3= rnorm(21))
df_list <- list(df1=df1,df2=df2,df3=df3)
每个数据框都有不同的子集条件:
例如:
#If I would subset them in a singular way outside of the list
df1_s <- df1[which(df1$k <=12 & df1$k >0), df1$h_1] #Taking only rows of k=12 to k=1
and only the column h_1
df2_s <- df2[which(df2$k <=4 & df2$k >0), df2$h_3]
df3_s <- df3[which(df3$k <=12 & df2$k >0), df2$h_2]
我如何以最高效的方式对列表中的三个数据框进行子集操作? 我认为使用lapply并将子集编号放入向量中会是一个好的方法,但我不知道如何做或如何在列表中进行子集操作。
我希望你能帮助我。在发布之前,我尝试在其他帖子中寻找解决方案,但那些解决方案对我的代码无效。