我想根据过滤条件创建许多数据框。我最近尝试提高R的技能,尤其是函数式编程方法。
下面的reprex显示了一种复制/粘贴方法,该方法可获取我想要的内容-在基于数据框内的列应用了某些过滤条件之后,将分析各种数据框。显然,对于任意多个过滤条件而言,这是不切实际的。
library(tidyverse)
df = tibble(a = rnorm(5000, mean = 500, sd = 20),
b = rep(c('a', 'b', 'c', 'd'), 5000/4))
thresholds = c(400, 450, 500, 550)
df_400 = df %>% filter(a < 400)
df_450 = df %>% filter(a < 450)
df_500 = df %>% filter(a < 500)
df_550 = df %>% filter(a < 550)
我曾尝试使用进行变体map2
,但不确定如何在数据框的各行上进行变体以及是否基于此条件。我觉得我缺少一些简单的东西。
正如我在评论中所述,这是使用基本r和dplyr方法的答案。
dplyr
map(thresholds, ~df %>% filter(a < .x))
基础
lapply(thresholds, function(x){df[df[["a"]] < x, ]})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句