在 dcast.data.table
的帮助文件中,有一个说明注释称已经实现了一项新功能:“dcast.data.table
允许 value.var 列为 list 类型”。
我理解这意味着可以将多个值变量包含在一个列表中,即以以下格式:
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
列可以是列表类型,这样的列现在可以作为value.var
列。 - Roland