R 在调用中使用特殊函数调用的正确语法

R 在调用中使用特殊函数调用的正确语法,r,function,syntax,nse,R,Function,Syntax,Nse,我对在调用中使用/eval感兴趣,就像在代码中一样: eval(call("mean", c(2,3))) 它将正确地生成结果2.5。现在,我想对一个 示例:+ 电话: eval(call("`+`", c(2,3))) 产生错误: eval(expr、envir、enclose)中出错:找不到函数“+” 与此类似, eval(call("+", c(2,3))) 不会产生预期的结果: [1] 2 3 所需的结果应该只返回长度为1的向量,该向量具有通过调用2+3获得的单个值5。ev

我对在
调用中使用
/
eval
感兴趣,就像在代码中一样:

eval(call("mean", c(2,3)))
它将正确地生成结果2.5。现在,我想对一个

示例:
+
  • 电话:

    eval(call("`+`", c(2,3)))
    
    产生错误:

    eval(expr、envir、enclose)中出错:找不到函数“
    +

  • 与此类似,

    eval(call("+", c(2,3)))
    
    不会产生预期的结果:

    [1] 2 3
    

  • 所需的结果应该只返回长度为1的向量,该向量具有通过调用
    2+3
    获得的单个值5

    eval(调用(“+”,c(2,3)))
    工作正常。您正在使用向量调用一元加号,该向量返回相同的向量

    如果要使用binary plus,则需要提供两个参数:

    eval(call("+", 2, 3))
    #[1] 5
    
    但是生产代码中最好使用
    do.call

    do.call("+", list(2, 3))
    #[1] 5
    
    eval(call(“+”,c(2,3))
    工作得非常好。您正在使用向量调用一元加号,该向量返回相同的向量

    如果要使用binary plus,则需要提供两个参数:

    eval(call("+", 2, 3))
    #[1] 5
    
    但是生产代码中最好使用
    do.call

    do.call("+", list(2, 3))
    #[1] 5