跨R中的数据框迭代Group_by

时间:2019-11-13 11:44:20

标签: r purrr tidyeval

我正在尝试简化脚本中的当前代码。

我想按两个分类变量的每种可能组合进行分组,并汇总我的解释变量的平均值。

使用ggplot2中的mpg数据库的示例;

library(tidyverse)

   mpg %>% group_by(manufacturer, model) %>% summarise(mean = mean(hwy))
   mpg %>% group_by(manufacturer, year) %>% summarise(mean = mean(hwy))
   mpg %>% group_by(manufacturer, cyl) %>% summarise(mean = mean(hwy)) 

(此操作将一直持续到类别变量的所有组合-列都完成为止)

mpg %>% group_by(cyl, year) %>% summarise(mean = mean(hwy))

等...

我的实际数据库有数百个分类变量,因此我想在for循环或使用purrr的过程中进行迭代。

谢谢

1 个答案:

答案 0 :(得分:1)

这使用>>> import sys >>> for p in sys.path: print (p) C:\Users\Aidan\AppData\Local\Programs\Python\Python37-32\Lib\idlelib C:\Users\Aidan\AppData\Local\Programs\Python\Python37-32\python37.zip C:\Users\Aidan\AppData\Local\Programs\Python\Python37-32\DLLs C:\Users\Aidan\AppData\Local\Programs\Python\Python37-32\lib C:\Users\Aidan\AppData\Local\Programs\Python\Python37-32 C:\Users\Aidan\AppData\Roaming\Python\Python37\site-packages C:\Users\Aidan\AppData\Local\Programs\Python\Python37-32\lib\site-packages 选择字符和因子列,然后使用purrr选择所有组合。

combn()

请注意,当library(ggplot2) library(purrr) library(dplyr) map_lgl(mpg, ~ is.character(.) | is.factor(.))%>% names(.)[.]%>% combn(2, function(x) {mpg%>%group_by_at(x)%>%summarize(mean = mean(hwy))}, simplify = F) 评估为4,950个组合时,这可能会变得混乱。