3

这应该是一个reshape2在 R 中使用 package 的简单练习,但不知何故我没有看到它。

想象一下我有数据:

df <- data.frame(A = rnorm(4), B = rnorm(4))

看起来像:

       A          B

1  2.3729531 -0.9252266
2  0.9848229 -0.1152347
3  2.1234409  0.9035180
4 -0.5771637  1.2755104

long_form <- melt(df)

看起来像

  variable      value
1        A  2.3729531
2        A  0.9848229
3        A  2.1234409
4        A -0.5771637
5        B -0.9252266
6        B -0.1152347
7        B  0.9035180
8        B  1.2755104

我如何变long_formdf?

我可以通过先添加另一列来做到这一点,

long_form = data.frame(id = c(1:4, 1:4), long_form) dcast(long_form, id ~ variable)

然后删除 id 列进行恢复df;但似乎我应该能够在不显式添加 id 列来索引复制 A 和 B 的情况下做到这一点。

4

1 回答 1

2

你可以做

dcast(melt(df), 1:4 ~ variable)

这有点短。

于 2013-05-23T19:19:29.457 回答