[英]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.