如何将 dplyr 过滤器应用于数据框列表?
Posted
技术标签:
【中文标题】如何将 dplyr 过滤器应用于数据框列表?【英文标题】:How to apply dplyr filter to list of data frames? 【发布时间】:2017-08-10 13:23:41 【问题描述】:我有一个list()
的数据框。我想将dplyr
的filter()
应用于所有这些。
到目前为止我尝试过的示例代码...
require(dplyr)
list.DFs <- list(df1,df2)
lapply(
X = list.DFS,
FUN = filter(Gold.fish.count=="Total")
)
但这会报错:Object 'Gold.fish.count' not found
。
【问题讨论】:
也可以为此尝试 SE,例如lapply(list.DFS, dplyr::filter_, "Gold.fish.count=='Total'")
或在基础 R lapply(list.DFS, subset, Gold.fish.count=='Total')
中完成整个操作
【参考方案1】:
使用purrr
library(purrr)
map(list.DFs, ~filter(.x, Gold.fish.count == "Total"))
显然,你可以用 lapply 做同样的事情:
lapply(list.DFs, function(x) filter(x, Gold.fish.count == "Total"))
【讨论】:
这个答案和 David Arenburg 在控制台中都向我展示了过滤后的数据集。但在这两种情况下,过滤后的数据框都不会保存到变量中。但这确实回答了所提出的问题。 要保存到变量,只需将variable <-
放在行首
我的意思是将每个更改的数据帧保存到存储它的变量中。
我不确定你的意思。如果您希望将过滤后的数据帧存储在分配给同一变量的列表中,只需覆盖原始列表变量即可。以上是关于如何将 dplyr 过滤器应用于数据框列表?的主要内容,如果未能解决你的问题,请参考以下文章