【发布时间】:2014-03-05 00:31:18
【问题描述】:
在我的实际问题中,我有一个返回列表的函数。有没有办法将它与 dplyr mutate() 一起使用?这个玩具示例不起作用-:
it = data.table(c("a","a","b","b","c"),c(1,2,3,4,5), c(2,3,4,2,2))
myfun = function(arg1,arg2) {
temp1 = arg1 + arg2
temp2 = arg1 - arg2
list(temp1,temp2)
}
myfun(1,2)
it%.%mutate(new = myfun(V2,V3))
我看到它在 new 变量的第一个“列”中循环函数的输出,但不明白为什么。
谢谢!
【问题讨论】:
-
目前不支持,下一个版本的dplyr会支持。 (至少对于 data.frames,鉴于 Arun 的 cmets,尚不清楚 data.table 是否允许您将列表用作列)
-
@hadley,
data.tablehomepage 上的第一行是:“快速子集、快速分组、快速分配、快速有序连接和list columns,语法简短灵活”。它确实支持。鉴于他提到输出正在“循环”,我猜布罗迪的回答是他所期待的。 RonRich,请告诉我们输出应该是什么样子。 -
brodie 的输出是正确的。我将发布一个带有 data.table 方向的新问题,以更清楚地说明我的现实问题。
-
@Arun 明白了——我只是很困惑,因为 data.table 通常会将列表变成列
标签: r data.table dplyr