在R中,是否可以将运算符赋给变量或其他允许变量用作运算符的构造?在我的情况下,我想要一些代码使用foreach包中的%do%或%dopar%运算符(取决于用户是否需要并行计算)。要执行的代码块保持不变,它只是变量的运算符。
答案 0 :(得分:5)
这称为运算符重载,这是一个简单的例子:
"%do%" <- function(a, b){
if(do_plus){
a + b
} else {
a - b
}
}
do_plus <- TRUE
3 %do% 4
[1] 7
do_plus <- FALSE
3 %do% 4
[1] -1
答案 1 :(得分:5)
你问的是错误的问题。如果您没有并行运行,只需使用%dopar%
并致电registerDoSEQ
即可。使用%dopar%
时,代码不会更改,只需后端即可。