R 我可以为变量指定运算符吗?

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

在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_plus <- FALSE

3 %do% 4
[1] -1

“%do%”你问错了问题。如果不是并行运行,只需使用
%dopar%
并调用
registerDoSEQ
。使用
%dopar%
,代码不会更改,只是后端会更改。

我不确定您所说的eval函数有什么问题?!您可以将所需的命令作为字符串传递给eval!