如何让do.call返回一个对象而不是一个函数调用?

时间:2014-09-08 03:26:52

标签: r

我正在使用do.call调用回归函数(用户选择的函数;例如lm()glm()),并希望它返回生成的回归对象(例如, ,类lm)然后我可以进一步使用,而不是函数调用。这可能吗?

一个简单的例子:

我想要以下代码:

reg.fun <- lm
reg.object.A <- do.call(reg.fun, list(formula=formula.reg, data=data.A, ...)))

返回与

相同的对象
reg.object.A <- lm(formula = formula.reg, data = data.A)

1 个答案:

答案 0 :(得分:0)

要明确(因为起初它对我来说很模糊:-)),bar<-do.call(lm, etc...)会返回与rab <- lm( same formula and data)相同的对象:

 y=2:6
 x=1:5
 rab<-lm(y~x)
 bar<-do.call(foofun,list(formula='y~x',data=list(x=1:5,y=2:6)))


for(j in names(bar) ) print(identical(bar$j,rab$j))
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE