【发布时间】:2021-03-01 04:33:41
【问题描述】:
我有以下数据框,其中包含一个数字变量和 2 个字符。我想为每个字符值组合显示数字变量(z)的平均值。我使用聚合函数来做到这一点:
df <- data.frame(x=sample(c("a","b","c"),100,replace = T),
y=sample(c("A","B","C"),100, replace = T),
z=rnorm(100,2))
aggregate(df[,3],list(id1 = df[,1], id2 = df[,2]),mean)
输出如下所示:
id1 id2 x
1 a A 2.052119
2 b A 2.058046
3 c A 2.397236
4 a B 2.342341
5 b B 2.182605
6 c B 2.227108
7 a C 1.733620
8 b C 1.725497
9 c C 1.966901
我想把它改成这样,或者使用其他函数来给出下面的输出:
a b c
A 2.052119 2.058046 2.397236
B 2.342341 2.182605 2.227108
C 1.733620 1.725497 1.966901
【问题讨论】:
-
如果你将
aggregate函数的输出存储在df1中,你可以做到tidyr::pivot_wider(df1, names_from = id1, values_from = x)