我正在使用带有.combine = rbindlist的foreach。尽管我使用.combine = rbind可以正常工作,但这似乎不起作用。
只是用一个简单的例子来说明-
> t2 <- data.table(col1=c(1,2,3))
> foreach (i=1:3, .combine=rbind) %dopar% unique(t2)
col1
1: 1
2: 2
3: 3
4: 1
5: 2
6: 3
7: 1
8: 2
9: 3
# But using rbindlist gives an error
> foreach (i=1:3, .combine=rbindlist) %dopar% unique(t2)
error calling combine function:
<simpleError in fun(result.1, result.2): unused argument(s) (result.2)>
NULL
有人能做这项工作吗?
提前致谢。
最佳答案
基本上就是您所说的-rbindlist
假定为list
参数,并且得到的错误与此相同:
result.1 = data.table(blah = 23)
result.2 = data.table(blah = 34)
rbindlist(result.1, result.2)
#Error in rbindlist(result.1, result.2) : unused argument (result.2)
如果您想使用
rbindlist
,可以采用以下方法:rbindlist(foreach (i = 1:3) %dopar% unique(t2))
或这个:
foreach (i=1:3, .combine=function(x,y)rbindlist(list(x,y))) %dopar% unique(t2)