gpt4 book ai didi

r - dcast 中的 value.var 可以是一个列表还是有多个值变量?

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

dcast.data.table 的帮助文件中,有一个注释说明已经实现了一个新功能:“dcast.data.table 允许 value.var 列是列表类型”

我认为这意味着一个列表中可以有多个值变量,即采用以下格式:

dcast.data.table(dt, x1~x2, value.var=list('var1','var2','var3'))

但是我们得到一个错误: 'value.var' must be a character vector of length 1.
是否有这样的功能,如果没有,其他单线替代品是什么?

编辑:回复以下评论

在某些情况下,您希望将多个变量视为 value.var .例如,假设 x2 由 3 个不同的星期组成,并且您有 2 个值变量,例如盐和糖的消耗量,并且您希望将这些变量转换为不同的星期。当然,您可以将 2 个值变量“融合”到一列中,但是为什么要使用两个函数来做某事,因为您可以在一个函数中执行此操作,例如 reshape做?

(注意:我还注意到 reshape 不能像 dcast 那样将多个变量视为时间变量。)

所以我的观点是,我不明白为什么这些函数不允许在 value.var 中灵活地包含多个变量。或 time.var正如我们允许 id.var 的多个变量一样.

最佳答案

从data.table v1.9.6开始,我们可以转换多个value.var同时列(并且还在 fun.aggregate 中使用多个聚合函数)。请查看 ?dcastEfficient reshaping using data.tables更多的小插图。

这是我们如何使用 dcast :

dcast(setDT(mydf), x1 ~ x2, value.var=c("salt", "sugar"))
# x1 salt_1 salt_2 salt_3 sugar_1 sugar_2 sugar_3
# 1: 1 3 4 6 1 2 2
# 2: 2 10 3 9 5 3 6
# 3: 3 10 7 7 4 6 7

关于r - dcast 中的 value.var 可以是一个列表还是有多个值变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23056328/

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