【问题标题】:How to apply dplyr filter to list of data frames?如何将 dplyr 过滤器应用于数据框列表?
【发布时间】:2017-08-10 13:23:41
【问题描述】:

我有一个list() 的数据框。我想将dplyrfilter() 应用于所有这些。

到目前为止我尝试过的示例代码...

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') 中完成整个操作

标签: r list dataframe dplyr


【解决方案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 &lt;-放在行首
  • 我的意思是将每个更改的数据帧保存到存储它的变量中。
  • 我不确定你的意思。如果您希望将过滤后的数据帧存储在分配给同一变量的列表中,只需覆盖原始列表变量即可。
猜你喜欢
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
  • 2012-07-11
  • 2020-03-05
  • 2021-09-17
  • 1970-01-01
相关资源
最近更新 更多