问题描述
x <- data.frame("Name" = c("John","Dora"),"SN" = 1:2,"SN_1" = 7:8,"SN_2" = 5:6 )
Name SN SN_1 SN_2
1 John 1 7 5
2 Dora 2 8 6
我想将其转换为:
Name SN
1 John 1
2 Dora 2
3 John 7
4 Dora 8
5 John 5
6 Dora 6
解决方法
library(data.table)
setDT(x)
melt(x,id.vars = "Name",measure.vars = patterns(c("SN")))[,.(Name,SN = value)]