繁体   English   中英

Tidyverse-按多个变量分组时聚集并散布

[英]Tidyverse - Gather unite and spread when grouping by multiple variables

我知道这是一个非常简单的问题 ,我一直在这里这里寻找答案,试图使代码适合我当前的问题,但是我没有成功。 因此,有几次,我们需要提供具有多个组的均值和标准差(以及其他信息)的表。 这是一个非常普遍的分析,但是当我们决定使用tidyverse来运行该分析时,有时代码将变得难以处理。

收集

我知道这段代码与我想要的非常接近

all_fpc %>% 
  group_by(arm, Time) %>% 
  summarise_at(vars(sum_fpc), funs(mean, sd)) %>% 
  gather(key, val, mean:sd) %>% 
  separate(key, into = c('key1', 'key2')) %>% 
  print(n=nrow(.))

但是我堆在这里。

要重现此数据集,请尝试以下操作:

ds <- data.frame(arm=c("Group 1","Group 2","Group 3", "Group 4"), 
                 Time = c("First","Second","Third"),
                 result = rnorm(n = 120,mean=10,sd=2))
ds %>% 
  group_by(arm, Time) %>% 
  summarise_at(vars(result), funs(mean, sd)) %>% 
  gather(key, val, mean:sd) %>% 
  print(n=nrow(.))

第二个问题:是否有人知道可以基于更简单的方式创建数据透视表的任何程序包(基于tidyverse)?

编辑:与往常一样,感谢所有建议! 这个问题的答案如下。

如果我们想重现ezsummary输出,只需summarise

ds %>% 
   group_by(arm, Time) %>% 
   summarise(variable = 'result', 
             mean = round(mean(result), 1),
             sd = round(sd(result), 1))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM