PD0_Code PD0_Flock PD0_Tag PD0_Value PD1_Code PD1_Flock PD1_Tag PD1_Value PD2_Code PD2_Flock PD2_Tag PD2_Value
您好 我有一个包含384列的数据表。我需要它从宽变换为长格式。由于列标题不同,我不能使用熔化或分割/堆叠。以上是我正在处理的列标题的格式。我需要的是将大dt分成4列(代码,Flock,Tag,Value),然后堆叠在一起。我已经尝试了以下内容并将其正确分割 - 现在我只需要能够将它们全部叠加在一起
split(dt2, (seq_along(4)))
x <- cbind(obj.list)
我真的很感激这方面的一些帮助。感谢
答案 0 :(得分:4)
我们可以使用melt
中的data.table
patterns
,measure
可以使用library(data.table)
melt(setDT(df1), measure = patterns("Code$", "Flock$", "Tag$", "Value$"),
value.name = c("Code", "Flock", "Tag", "Value"))
。
df1 <- structure(list(PD0_Code = c(1L, 3L, 5L), PD0_Flock = c(4L, 9L,
7L), PD0_Tag = c(3L, 4L, 3L), PD0_Value = c(4L, 6L, 4L), PD1_Code = c(2L,
4L, 6L), PD1_Flock = c(1L, 8L, 9L), PD1_Tag = c(4L, 4L, 3L),
PD1_Value = c(1L, 5L, 4L), PD2_Code = c(1L, 6L, 5L), PD2_Flock = c(3L,
9L, 4L), PD2_Tag = c(3L, 4L, 2L), PD2_Value = c(1L, 3L, 7L
)), .Names = c("PD0_Code", "PD0_Flock", "PD0_Tag", "PD0_Value",
"PD1_Code", "PD1_Flock", "PD1_Tag", "PD1_Value", "PD2_Code",
"PD2_Flock", "PD2_Tag", "PD2_Value"), class = "data.frame",
row.names = c(NA, -3L))
XMLHttpRequest: require('../../../../xmlhttprequest').XMLHttpRequest