【问题标题】:R - Saving Variable to dataframe from own functionR - 从自己的函数将变量保存到数据帧
【发布时间】:2013-08-30 09:50:58
【问题描述】:

我又被卡住了……

我想编写一个函数来获取一些统计数据,以检查线性回归的假设。我引用的功能还没有完成,但我想你会明白的:

check.regression <- function(regmodel, dataframe, resplots = TRUE,
                             durbin = TRUE, savecheck = TRUE) {
     print(dwt(regmodel)) # Durbin-Watson-Test
     dataframe$stand.res <- rstandard(regmodel) # Saving Standardized Residuals                   
}

如您所见,我想将模型的标准化残差保存到给定的数据框中。

regmodel 是指通过线性回归 lm(y~x) 计算的模型,dataframe 是计算回归模型的数据帧的名称。

问题是:我的函数中没有保存任何内容。如果我在没有函数的情况下执行命令,则残差会正确保存到我的数据框中。

我想,一定有类似的东西

save(dataframe$stand.res <- rstandard(regmodel))

因为我还必须在函数中指定绘图或将内容写入控制台,但我不知道该命令可能是什么。

有什么想法吗?

【问题讨论】:

    标签: r function save


    【解决方案1】:

    R 使用pass-by-value,所以发送到函数的是你的data.frame 的副本。 (有点,传递一些细节。)

    所以当你调用函数时,你需要 1) 返回修改后的 data.frame 和 2) 分配它,否则你会丢失结果。

    check.regression <- function(regmodel, dataframe, resplots = TRUE,
                                 durbin = TRUE, savecheck = TRUE) {
         print(dwt(regmodel)) # Durbin-Watson-Test
         dataframe$stand.res <- rstandard(regmodel) # Saving Standardized Residuals
         return(dataframe)                  
    }
    
    dataframe <- check.regression(regmodel, dataframe)
    

    【讨论】:

    • 对不起,我明白了。我忽略了您回复的结尾(dataframe
    猜你喜欢
    • 1970-01-01
    • 2021-12-23
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多