在保留名称的同时融化为多个值变量

时间:2017-03-09 19:29:19

标签: r data.table

我正在尝试使用Data.table融合将两组度量列融合为两个单独的值列。我能够执行熔化操作,但问题是我需要在新创建的变量列中保留列的名称。

可重复的例子:

library(data.table)
ids = c(1,2,3,4,5)
a_1 = c(0,1,0,0,1)
a_2 = c(1,1,0,0,1)
b_1 = c(0.5, 0.34, 0.23, 0.10, 0.4)
b_2 = c(0.2, 0.00, 0.32, 0.04, 0.47)
d = data.table(ids, a_1,a_2,b_1,b_2)

m = melt(d, id = "ids", measure.vars = patterns("a_", "b_") )

> m
    ids variable value1 value2
 1:   1        1      0   0.50
 2:   2        1      1   0.34
 3:   3        1      0   0.23
 4:   4        1      0   0.10
 5:   5        1      1   0.40
 6:   1        2      1   0.20
 7:   2        2      1   0.00
 8:   3        2      0   0.32
 9:   4        2      0   0.04
10:   5        2      1   0.47

如您所见,variable列现在有2个标签:1,2。我想要的是,此列包含原始列名a_1,a_2,b_1,b_2

这可以在单次熔化操作中完成吗?

我知道有可能将原始表子集成为2个单独的data.tables,然后在合并之前单独融化,但是我经常执行这种类型的操作,所以如果我能用更少的击键来做这个更好

0 个答案:

没有答案