【发布时间】:2018-07-26 17:37:32
【问题描述】:
如何将长数据重新整形为宽
x = c('x1','x1','x2','x2')
y = c('y1','y1','y2','y2')
z= c('a','b','a','b')
n = c(3,5,7,2)
df1 <- data.table(x,y,z,n)
> df1
x y z n
1: x1 y1 a 3
2: x1 y1 b 5
3: x2 y2 a 7
4: x2 y2 b 2
以宽格式获得如下所示的输出。我将 x 和 y 列分组,将 z 列按行展开并计算 n 列的总和。
x y z n z.1 z.2
1: x1 y1 a 8 a b
2: x2 y2 b 9 a b
我尝试过使用 reshape 和 dcast,但对我没有帮助
dcast(df1, x ~ y, value.var="value")
【问题讨论】:
-
我可以建议一个 tidyverse 解决方案吗?