为什么`v.names`在融合数据时能帮助`reshape()`猜测时变变量?

时间:2019-02-01 18:33:31

标签: r reshape

我有以下data.table

dt <- data.table(client = 1:2, Month1 = rnorm(2), Month2 = rnorm(2))
> dt
   client     Month1     Month2
1:      1 -0.1348442  0.6787494
2:      2  0.8431479 -1.3760579

我正在尝试使用reshape()`使dt融化,使其看起来像这样:

client  time       value
     1     1  -0.1348442
     1     2   0.6787494
     2     1   0.8431479 
     2     2  -1.3760579

我用this answer得到了非常相似的东西。但是,我真的不懂语法。

> reshape(dt, varying = 2:3, v.names = "Value", direction = "long")
   client time      Value id
1:      1    1 -0.1348442  1
2:      2    1  0.8431479  2
3:      1    2  0.6787494  1
4:      2    2 -1.3760579  2

我希望下面的代码行能工作,因为文档指出varying可以是名称的矩阵或单个向量。

> reshape(data = dt, varying = c("Month1", "Month2"), direction = "long")
> Error in guess(varying) : 
    failed to guess time-varying variables from their names

除非我添加v.names参数,否则此方法不起作用。我不明白为什么添加此内容将有助于R识别宽列中对应于长列的列。有人可以解释吗?另外,有没有办法将id列放在reshape()内?

0 个答案:

没有答案