如果我有以下数据:
df <- data.frame(x=sample(letters[1:20], replace=T),
y=sample(letters[1:20], replace=T), z=sample(1:10, replace=T))
我想要堆叠x和y&#39; id&#39;列,然后重复这个值,我该怎么做?
因此,假装数据框的第一行是
x y z
1 p r 5
我希望重新整形的数据框中的第一行看起来像:
id value
1 p 5
2 r 5
答案 0 :(得分:1)
library(data.table)
melt(setDT(df),measure.vars = 1:2)