R - dcast或转置

时间:2016-01-26 00:10:18

标签: r reshape reshape2

我正在尝试采用以下小数据样本:

IndID  J2015  E2015  Area
1      10     5      DC
2      15     7      DC
3      20     10     DC

然后使用reshapereshape2将其转换为以下格式:

Area  1_J2015  1_E2015  2_J2015  2_E2015  3_J2015  3_E2015
DC    10       5        15       7        20       10

我将在几百万行数据中执行此操作,但是我无法找出执行此操作的正确公式,部分我认为这需要在两个或更多步骤中完成。

我在dcast包中尝试了reshape函数的各种格式:

df <- dcast(AreaID + J2015 + E2015 ~ IndID, data = data)

提前谢谢你。

1 个答案:

答案 0 :(得分:3)

首先融化它,然后像这样dcast:

library(reshape2)

m <- melt(data, id.var = c("IndID", "Area"))
dcast(m, Area ~ IndID + variable)

,并提供:

  Area 1_J2015 1_E2015 2_J2015 2_E2015 3_J2015 3_E2015
1   DC      10       5      15       7      20      10

或合并为一个命令:

recast(data, Area ~ IndID + variable, id.var = c("IndID", "Area"))