使用f(myclass.myfunc)语法将函数传递给R

使用f(myclass.myfunc)语法将函数传递给R,r,function,arguments,R,Function,Arguments,我是新来R的。我在谷歌上搜索了我的问题,但没有找到确切的答案。我知道可以将函数传递到其他函数中,但我想将类似“对象”的变量传递到其他函数绑定到“对象”的函数中。这就是我的意思 model1.calculation1 = function() { print( "model1.calculation1" ) } model2.caclulation1 = function() { print( "model2.calculation2" ) } runModel = funct

我是新来R的。我在谷歌上搜索了我的问题,但没有找到确切的答案。我知道可以将函数传递到其他函数中,但我想将类似“对象”的变量传递到其他函数绑定到“对象”的函数中。这就是我的意思

model1.calculation1 = function() {
    print( "model1.calculation1" )
}
model2.caclulation1 = function() {
    print( "model2.calculation2" ) 
}

runModel = function( model ) {
    model.calculation1() 
}
runModel( model1 )
runModel( model2 )

以及错误消息:

Error in model.calculation1() : 
  could not find function "model.calculation1"

注意,在将函数绑定到任何model1或model2之前,我不会实例化它们。有办法做到这一点吗?谢谢

我想您正在寻找
替代品

runModel = function( model ) {
  s <- substitute(model)
  if(s=="model1")
    model1.calculation1() 
  else
    model2.calculation1() 
}

runModel( model1 )
# [1] "model1.calculation1"

runModel( model2 )
# [1] "model2.calculation2"
runModel=函数(模型){

s输入错误。检查拼写…您想要:
model1.calculation1()
否,我想
runModel
调用作为参数传递的模型上的
calculation1
。谢谢Edward,但我没有输入错误。我调用
model.caclulation1()
而不是
model1.calculation1()
是因为model是
runModel
的函数参数名。我想
runModel
调用
calculation1
作为参数传递给它的任何模型。这是我在javascript中要做的事情,aware R是它自己的事情,所以我想知道我是否可以用类似的语法实现这一点或者,如果我需要求助于类什么的。这很不公平,但是错误仍然是抛出了“找不到函数”模型。计算1“,修复了输入错误并重新运行仍然会产生同样的错误。
model1 <- lm(mpg~hp, data=mtcars)
model2 <- lm(mpg~hp+am, data=mtcars)