【发布时间】:2014-09-02 19:28:47
【问题描述】:
我正在尝试完全按照 stats 包的 reshape 设计。我有一个广泛的数据集,其中包含var_name.date 形式的一系列变量。不幸的是,reshape 似乎无法处理中等规模的数据集,所以我尝试使用 data.table.melt 函数。
我的主要问题是根据变量的长格式变量将变量分组到单独的值列中。这可能吗,还是我需要分别做每一个然后cbind他们?
这是我所拥有的:
widetable = data.table("id"=1:5,"A.2012-10"=runif(5),"A.2012-11"=runif(5),
"B.2012-10"=runif(5),"B.2012-11"=runif(5))
id A.2012-10 A.2012-11 B.2012-10 B.2012-11
1: 1 0.82982349 0.2257782 0.46390924 0.4448248
2: 2 0.46136746 0.2184797 0.05640388 0.4772663
3: 3 0.61723234 0.3950625 0.03252784 0.4006974
4: 4 0.19963437 0.7028052 0.06811452 0.3096969
5: 5 0.09575389 0.5510507 0.76059610 0.8630222
这里是 stats 包的 reshape 嘲笑我用一行代码做我想要的但不缩放。
reshape(widetable, idvar="id", varying=colnames(widetable)[2:5],
sep=".", direction="long")
id time A B
1: 1 2012-10 0.82982349 0.46390924
2: 2 2012-10 0.46136746 0.05640388
3: 3 2012-10 0.61723234 0.03252784
4: 4 2012-10 0.19963437 0.06811452
5: 5 2012-10 0.09575389 0.76059610
6: 1 2012-11 0.22577823 0.44482478
7: 2 2012-11 0.21847969 0.47726629
8: 3 2012-11 0.39506249 0.40069737
9: 4 2012-11 0.70280519 0.30969695
10: 5 2012-11 0.55105075 0.86302220
【问题讨论】:
标签: r data.table reshape2 melt