【发布时间】:2020-04-23 04:04:32
【问题描述】:
有从宽表格变成长表格的表格。它包含 +200 列,由多列组成,如下所示:
原始数据:
# dt
dt <- data.table("1" = c(NA,"Place","dan","uan","yan"),
"2" = c(NA,"Place_2","adan","duan","eyan"),
"3" = c("something","Male",1253,6643,4325),
"4" = c(1998,"Female",624,623,55),
"5" = c(NA,"Trans",13,51,51),
"6" = c("something2","Male",126,63643,725),
"7" = c(1999,"Female",284,243,557),
"8" = c(NA,"Trans",138,541,11))
从第3列开始,每+3列就是年份值
dt[1,c(3:ncol(dt) %% 3 == 1),with = FALSE]
如何有效地将多列转换为单列进行熔解?
目标:
Place Place_2 Sex Year num
dan adan Male 1998 1253
dan adan Female 1998 624
dan adan Trans 1998 13
dan adan Male 1999 126
dan adan Female 1999 63643
dan adan Trans 1999 725
uan duan Female 1998 6643
....
【问题讨论】:
-
是的,只有第一行包含年份值,以及三个类型的中间。就像我们通常在一些带有双列名称的 excel 表中看到的那样。
标签: r data.table multiple-columns melt