数据透视数据表,类似于重塑融合功能 - 代码日志

数据透视数据表,类似于重塑融合功能

我在这里读了一些关于SO的类似问题的引用,但是还没有找到解决方案,并且想知道是否有任何方法可以使用data.table进行以下操作。

我将使用一个简化的例子,但实际上我的数据表有> 1000列类似于var1,var2,… var1000等

dt <- data.table(uid=c("a","b"), var1=c(1,2), var2=c(100,200))

我正在寻找一个解决方案,让我得到类似于重塑融合功能的输出 –

> melt(dt, id=c("uid"))
uid variable value
1   a     var1     1
2   b     var1     2
3   a     var2   100
4   b     var2   200

也就是说,除了uid之外的所有列都列在一个列中,并在相邻的列中显示相应的值。我已经尝试了这个列表等的组合,但可能会丢失一些显而易见的东西。

dt中的所有输出都是独一无二的。

提前致谢。

要进行data.table重塑,请尝试以下操作:

dt[, list(variable = names(.SD), value = unlist(.SD, use.names = F)), by = uid]

语法的代价是值得的;功能运行非常快!

http://stackoverflow.com/questions/18449938/pivot-on-data-table-similar-to-rehape-melt-function

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:数据透视数据表,类似于重塑融合功能