我通过一个循环对不同时间间隔的数据求和,最后,我通过一个线性模型运行它。目前,我正在对我想要的所有系数进行硬编码,并将它们附加到数据帧中,一旦循环结束,它就会导出CSV。
问题是,我有很多变量,并希望在每次迭代中导出所有变量。
有没有办法做到这一点?理想情况下,我希望提取每个自变量的系数、每个独立变量的P值、模型的P值和调整后的模型R2,然后导出
有什么想法吗?下面是这个循环的样子:
outputs <- matrix(,ncol=4)
for(size in seq(20,30, by= 10))
{
for(i in 2:nrow(df_first))
{ upperWindow <- as.numeric(df_first$time) <=
(as.numeric(perf$time[i])+g*60)
lowerWindow <- df_first$time >= perf$time[i]
total[i] <- sum(perf$total [upperWindow & lowerWindow])
}
fit <- lm(total ~ x + y)
model_coef <- coefficients$fit
outputs <- rbind(model_coef, size, fit$adj.r.squared)
}
write.table (outputs, file =~ ) 基本上,我想从我正在运行的模型中提取所有的系数、R平方和大小,并将它们导出为CSV。我一直收到错误消息“属性在度量变量中不相同;它们将被丢弃”
发布于 2016-04-07 08:57:14
没有提供可重复的示例,因此这里是如何从线性模型中提取所需值的通用示例:
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
fit <- lm(weight ~ group)
sumfit <- summary(fit)我们可以使用系数法或使用$从拟合中获得系数,如
coeffs <- fit$coefficients和汇总统计信息如下
r.squared <- sumfit$r.squared # r squared
adj.r.sq <- sumfit$adj.r.squared # adjusted r squared
coeff.p <- sumfit$coefficients[,4] # p values for each coefficient可以用类似的方式从fit和sumfit中提取其他值。看一看他们的值,看看有什么可用。
https://stackoverflow.com/questions/36464408
复制相似问题