1
我想利用这个代码,并把它变成一个功能:R:dplyr功能,使长格式与多组
mtcars %>% group_by(gear) %>% select(hp, disp) %>%
summarise_all(funs(n=sum(!is.na(.)), mean=mean(.,na.rm=T))) %>%
gather(variable, value, -gear) %>%
arrange(gear, sub('_.*', '', variable), sub('.*_', '', variable)) %>%
separate(variable, into = c('var', 'metric'), '_')
它所做的是创建一个数据框,我可以很容易地导入到Excel中并创建枢纽。我试过以下,但它似乎并没有工作:
mean_func <- function(vars,groups) {
results <- test %>% group_by_at(vars(one_of(groups))) %>%
summarise_at(vars(starts_with(vars)), funs(n=sum(!is.na(.)), mean=mean(.,na.rm=T))) %>%
gather_(variable, value, -groups) %>%
arrange_(groups) %>%
separate_(variable, into = c('var', 'metric'), '_'); View(results)
}
好像问题是沿gather
声明的地方,但我不知道这可能是错在这里。有什么想法吗?
这似乎很落后。为什么你会经历将数据导入R的问题,只导出它以创建数据透视表?无论如何,用dplyr/tidyr动词进行编程已经发生了变化。请参阅:http://dplyr.tidyverse.org/articles/programming.html – boshek
由于用户受众需要数据透视表,因此他们可以轻松操纵和浏览数据。这不是我的要求,或者我只是制作一切。 – vashts85