小编Lon*_*car的帖子

创建动态分组依据

df = data.frame(
  A = c(1, 4, 5, 13, 2),
  B = c("Group 1", "Group 3", "Group 2", "Group 1", "Group 2"),
  C = c("Group 3", "Group 2", "Group 1", "Group 2", "Group 3")
)

df %>%
  group_by(B) %>%
  summarise(val = mean(A))

df %>%
  group_by(C) %>%
  summarise(val = mean(A))
Run Code Online (Sandbox Code Playgroud)

group_by我不想为每个唯一的一组代码编写新的代码块,而是创建一个循环来遍历df数据帧并将结果保存到列表或数据帧中。

我想看看特征A的平均值如何分布在特征BC 上,而不必为数据集中的每个分类特征编写新的代码块。

我试过这个:

List_Of_Groups <- map_df(df, function(i) {
  df %>% 
    group_by(!!!syms(names(df)[1:i])) %>% 
    summarize(newValue = mean(A))
})
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr purrr tidyverse

3
推荐指数
1
解决办法
142
查看次数

标签 统计

dataframe ×1

dplyr ×1

purrr ×1

r ×1

tidyverse ×1