【发布时间】:2021-02-25 18:06:26
【问题描述】:
我有一个具有多个 ID 的数据框,我正在尝试对不同的 ID 集执行特征提取。数据如下所示:
id x y
1 3812 60 7
2 3812 63 105
3 3812 65 1000
4 3812 69 8
5 3812 75 88
6 3812 78 13
其中 id 具有大约 200 个不同的值。所以我试图从 (x,y) 数据中提取特征,并且我想并行进行,因为对于某些数据集,按顺序进行可能需要大约 20 分钟左右。现在我正在使用 dplyr:
x = d %>% group_by(id) %>% do(data.frame(getFeatures(., func_args))
其中func_args 只是函数getFeaures 的附加函数输入。我正在尝试使用plyr::ldply 和parallel=TRUE 来执行此操作,但是在getFeatures 中存在一个问题,我正在使用我编写的另一个函数。所以,当我尝试并行运行时,我得到一个错误:
Error in do.ply(i) :
task 1 failed - "could not find function "desparsify""
In addition: Warning messages:
1: <anonymous>: ... may be used in an incorrect context: ‘.fun(piece, ...)’
Error in do.ply(i) :
task 1 failed - "could not find function "desparsify""
desparsify 是一个自定义函数,用于处理 (x,y) 数据(它有效地将零添加到数据集中不存在的 x 位置)。当我尝试使用包lsa 中的cosine 函数时,我遇到了类似的错误。在 R 中调用外部/非基本函数时,有没有办法使用并行处理?
【问题讨论】:
标签: r parallel-processing plyr