【发布时间】:2017-01-09 11:05:36
【问题描述】:
我想将线性回归的结果存储在截距和系数等列表中。我有以下代码
results = list()
intercept = list()
coeff = list()
GetLM = function(dataframe,results,intercept,coeff){
unq_clients = as.vector(unique(dataframe$clients))
for(i in 1:length(unq_clients)){
new_df=dataframe[dataframe$clients == unq_clients[i],]
regression= lm(a ~ b,data = new_df )
results[[i]] = coef(regression)
intercept[i] = results[[i]][1]
coeff[i]=results[[i]][2]
}
}
但是当我调用该函数时,列表中没有存储任何内容。我做错了什么?
【问题讨论】:
-
为什么您的函数中缺少
return()语句。否则,对结果的任何添加都不会反映在功能范围之外。在函数末尾添加return(list(results, intercept, coeff))之类的内容 -
同时避免使用
for循环。尝试类似lapply()