使用plyr制作二维汇总表
我有一个列ID、Score和Average age的数据集,使用ddply(),我得到下表使用plyr制作二维汇总表,r,plyr,R,Plyr,我有一个列ID、Score和Average age的数据集,使用ddply(),我得到下表 ddply(data, .(id, score), summarize, group_mean = round(mean(avg_age), 1)) id score group_mean 1 101 0 61.8 2 101 5 70.3 3 101 10 62.2 4
ddply(data, .(id, score), summarize, group_mean = round(mean(avg_age), 1))
id score group_mean
1 101 0 61.8
2 101 5 70.3
3 101 10 62.2
4 2 0 41.0
5 2 5 40.4
6 2 10 44.5
7 23 0 52.0
8 23 5 52.6
9 25 0 74.5
10 25 5 55.2
11 25 10 48.0
12 28 0 53.4
13 28 5 49.5
14 3 0 41.3
15 3 5 47.8
16 3 10 46.6
17 4 0 53.3
18 4 5 54.2
19 4 10 55.3
20 X 0 72.0
21 X 5 57.1
22 X 10 53.4
如果我想让表看起来像一个透视表,行作为id,列作为score,该怎么办?即
0 5 10
101 61.8 70.3 62.2
2 41.0 40.4 44.5
...
我们可以从
tidyr
使用spread
。如果out
是从summary
从ddply
library(tidyr)
spread(out, score, group_mean)
或
acast
fromrestrape2
library(reshape2)
acast(out, id~score, value.var='group_mean')
或使用
base R
xtabs(group_mean~id+score, out)