我正在尝试使用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,然后在合并之前单独融化,但是我经常执行这种类型的操作,所以如果我能用更少的击键来做这个更好