使用f(myclass.myfunc)语法将函数传递给R
我是新来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
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)