Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何让do.call返回对象而不是函数调用?_R - Fatal编程技术网

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

R 如何让do.call返回对象而不是函数调用?,r,R,我正在使用do.call调用回归函数(由用户选择;例如lm(),glm()),并希望它返回生成的回归对象(例如,类lm),然后我可以进一步使用它,而不是函数调用。这可能吗 一个简单的例子: 我希望代码如下所示: reg.fun <- lm reg.object.A <- do.call(reg.fun, list(formula=formula.reg, data=data.A, ...))) reg.fun说清楚点(因为一开始我觉得有点模糊:-),barit确实返回了一个对象,只

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

一个简单的例子:

我希望代码如下所示:

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

reg.fun说清楚点(因为一开始我觉得有点模糊:-),
barit确实返回了一个对象,只是一个丑陋的对象,
call
slot扩展/评估了。。。试试
cc谢谢,这很有帮助@BenBolker如果我把你的评论作为答案发表,你会感到困扰吗?当我浏览未回答的问题,却发现这些问题已经在评论中得到了回答时,我会感到恼火。在这一点上,我怀疑我们中的任何一方都不在乎声誉。“你想要一段宽限期,以备你想写点什么吗?”弗利克先生同意了。您可以随时发布答案并将其标记为“社区维基”。顺便说一句,@AnandaMahto描述的方法被认为是一种实现这一点的方法。看起来是一个双赢的场景,因为没有人关心代表。
对于(名称中的j(条))打印(相同的(条[[j]],rab[[j]])
不会返回相同的结果
reg.object.A <- lm(formula = formula.reg, data = data.A)
 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