R 我可以为变量指定运算符吗?
在R中,是否可以将运算符分配给变量或允许变量用作运算符的其他构造?在我的例子中,我希望一些代码使用foreach包中的%do%或%dopar%操作符(取决于用户是否需要并行计算)。要执行的代码块保持不变,只是运算符是可变的。这称为运算符重载,下面是一个简单的示例:R 我可以为变量指定运算符吗?,r,R,在R中,是否可以将运算符分配给变量或允许变量用作运算符的其他构造?在我的例子中,我希望一些代码使用foreach包中的%do%或%dopar%操作符(取决于用户是否需要并行计算)。要执行的代码块保持不变,只是运算符是可变的。这称为运算符重载,下面是一个简单的示例: "%do%" <- function(a, b){ if(do_plus){ a + b } else { a - b } } do_plus <- TRUE 3 %do% 4 [1] 7
"%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
“%do%”你问错了问题。如果不是并行运行,只需使用%dopar%
并调用registerDoSEQ
。使用%dopar%
,代码不会更改,只是后端会更改。我不确定您所说的eval函数有什么问题?!您可以将所需的命令作为字符串传递给eval!