我正在尝试简化脚本中的当前代码。
我想按两个分类变量的每种可能组合进行分组,并汇总我的解释变量的平均值。
使用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的过程中进行迭代。
谢谢
答案 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个组合时,这可能会变得混乱。