gpt4 book ai didi

r - 在 data.table 上进行枢轴,类似于 rehape melt 函数

转载 作者:行者123 更新时间:2023-12-03 12:36:59 26 4
gpt4 key购买 nike

我已经在 SO 上阅读了一些对类似问题的引用,但还没有找到解决方案,并且想知道是否有任何方法可以仅使用 data.table 来执行以下操作。

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

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

我正在寻找一种解决方案,它可以让我获得类似于 reshape 的 melt 功能的输出——
> 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 中的所有 uid 都是唯一的。

提前致谢。

最佳答案

对于 data.table reshape ,请尝试以下操作:

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

语法的成本是值得的;该功能运行得非常快!

关于r - 在 data.table 上进行枢轴,类似于 rehape melt 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18449938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com