R - 从自己的函数将变量保存到数据帧

Posted

技术标签:

【中文标题】R - 从自己的函数将变量保存到数据帧【英文标题】:R - Saving Variable to dataframe from own function 【发布时间】: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))

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

有什么想法吗?

【问题讨论】:

【参考方案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

以上是关于R - 从自己的函数将变量保存到数据帧的主要内容,如果未能解决你的问题,请参考以下文章

通过 JDBC 将数组从 spark 数据帧输入到 postgreSQL

使用lapply或for循环将多个csv文件拉入自己的R数据帧

将存储在列表中的数据帧保存到 R 中的单个文件中

函数栈帧问题

在 R 中,如何在绘图的两个内部函数之间传递数据帧/小标题,然后保存绘图?

R 中将拆分数据帧保存为新文件的问题