【发布时间】:2014-06-04 12:11:51
【问题描述】:
我有一个 1M 行 2 列的 data.table
虚拟数据:
require(data.table)
ID <- c(1,2,3)
variable <- c("a,b","a,c","c,d")
dt <- data.table(ID,variable)
dt
> dt
ID 变量 1 a,b 2 a, c 3 c,d
现在我想通过“ID”将“变量”列折叠成不同的行,就像reshape2中的“melt”函数或data.table中的melt.data.table一样
这就是我想要的:
标识变量 1个 1个 2个 2℃ 3℃ 3天PS: 鉴于预期的结果,我知道如何执行 reverse 步骤。
dt2 <- data.table(ID = c(1,1,2,2,3,3), variable = c("a","b","a","c","c","d"))
dt3 <- dt2[, list(variables = paste(variable, collapse = ",")), by = ID]
有什么提示或建议吗?
【问题讨论】:
-
dt[, strsplit(variable, ","), by=ID] -
看here。
标签: r data.table