【发布时间】:2018-04-07 20:18:42
【问题描述】:
我是使用 R 和 stackoverflow 的新手。我正在尝试处理数据框列表并遇到以下问题(希望这是一个很好的复制示例)。假设我有一个包含 3 个 4 列的数据框的列表(我的真实代码包含 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 并将子集的数量放入向量中会是一个不错的方法,但我不知道该怎么做或如何在列表中设置子集。
我希望你能帮助我。在发布之前,我尝试在其他帖子中找到解决方案,这些帖子正在处理列表中数据框的子集,但这不适用于我的代码。
【问题讨论】: