【发布时间】:2018-11-06 21:56:14
【问题描述】:
我是 R 的初学者。我有一个关于空气污染的数据集。这些列是站点、测量浓度和可能影响浓度的 80 个变量 (v1-v80)。 我想用我自己的代码制作一个基于 R-squared/adj 的正向逐步回归模型(所以我不想使用 step() 或 regsubset() 之类的东西)。因变量是浓度,变量 v1-v80 作为自变量。第一步我写了如下代码(数据集被简化):
site concentration v1 v2 v3
1 1 -0.84085548 1.7114409 -0.2857736 -1.0803926
2 2 1.38435934 -0.6029080 0.1381082 -0.1575344
3 3 -1.25549186 -0.4721664 1.2276303 -1.0717600
for (j in names(df)){
model <- lm(concentration ~ df[[j]], data = df)
print(j)
print(summary(model))
}
这很好用,但我只对 R 平方和调整后的 R 平方感兴趣。我试图只打印(调整后的)R 平方:
for (j in names(df)){
model <- lm(concentration ~ df[[j]], data = df)
print(j)
print(summary(model$r.squared))
print(summary(model$adj.r.squared))
}
但后来我得到了输出(这只是一部分):
[1] "v1"
Length Class Mode
0 NULL NULL
Length Class Mode
0 NULL NULL
[1] "v2"
Length Class Mode
0 NULL NULL
Length Class Mode
0 NULL NULL
等等。
我如何才能仅将相关变量的名称和(调整后的)R 平方作为 for 循环中生成的每个模型的输出?
谢谢!
【问题讨论】:
标签: r linear-regression