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数据帧