修改R函数以添加额外输出?

时间:2015-09-05 11:00:43

标签: r function compilation

我希望线性模型回归命令“lm()”还添加了关于置信区间的信息。

我应该修改哪个文件才能获得它?

最糟糕的是我需要重新编译一些东西,但我希望我只能编译一个文件。

我该怎么办?

另一种选择是创建一个在启动时启动并覆盖常规行为或lm的脚本。怎么样?

1 个答案:

答案 0 :(得分:3)

您可以使用的是function operator。函数运算符将函数作为输入,添加一些功能并返回函数。

例如,要创建始终报告lm的{​​{1}}版本:

summary

使用此方法可以创建其他变体:

tweak_lm = function(modify_function) {
    function(...) {
        result = lm(...)
        print(modify_function(result))
        result
    }
}
summarized_lm = tweak_lm(summary)
lm_res = summarized_lm(mpg ~ wt, mtcars)

Call:
lm(formula = ..1, data = ..2)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.5432 -2.3647 -0.1252  1.4096  6.8727 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  37.2851     1.8776  19.858  < 2e-16 ***
wt           -5.3445     0.5591  -9.559 1.29e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.046 on 30 degrees of freedom
Multiple R-squared:  0.7528,    Adjusted R-squared:  0.7446 
F-statistic: 91.38 on 1 and 30 DF,  p-value: 1.294e-10

> lm_res

Call:
lm(formula = ..1, data = ..2)

Coefficients:
(Intercept)           wt  
     37.285       -5.344  

>

目前还不完全清楚你需要什么,但你可以使用这种方法。