我想弄清楚如何创建一个循环或使用其中一个应用函数来获取数据集中每个变量对因变量的单个1:1回归信息.
让我们说我正在使用mtcars.我将如何编写R代码来获取数据框中的每个变量并将其针对MPG进行回归?
更好的是获得每个自变量的摘要,并具有某种名称赋值,例如x1 =,x2 =等
summary(lm(mpg~eachvar,data=mtcars))
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 11
这将为你做到.
lapply( mtcars[,-1], function(x) summary(lm(mtcars$mpg ~ x)) )
Run Code Online (Sandbox Code Playgroud)
data.frame对象是一个包含其他一些功能的列表,因此这将通过mtcars的每一列(第一列除外)并执行回归.如果将结果列表保存为类似的内容,L则只需使用与原始data.frame中的列相同的名称或编号即可轻松访问每个列表.所以L$cyl给出了回归总结mpg上cyl.
Johns解决方案的data.table版本
library(data.table)
Fits <-
data.table(mtcars)[,
.(MyFits = lapply(.SD, function(x) summary(lm(mpg ~ x)))),
.SDcols = -1]
Run Code Online (Sandbox Code Playgroud)
代码的一些解释
data.table将转换mtcars为data.table对象.SD也是一个data.table包含想要操作的列的对象.SDcols = -1告诉.SD不要使用第一列(因为我们不想适合lm(mpg ~ mpg)lapply只是在所有列上运行模型.SD(除了我们跳过的列)并返回类的对象listFit 将是一个摘要列表,您可以使用它来检查它们
Fits$MyFits
Run Code Online (Sandbox Code Playgroud)
但是你也可以操作它们,例如,coef在每个配合上应用功能
Fits[, lapply(MyFits, coef)]
Run Code Online (Sandbox Code Playgroud)
或者得到 r.squered
Fits[, lapply(MyFits, `[[`, "r.squared")]
Run Code Online (Sandbox Code Playgroud)
Hi try something like that :
\n\nmodels <- lapply(paste("mpg", names(mtcars)[-1], sep = "~"), formula)\nres.models <- lapply(models, FUN = function(x) {summary(lm(formula = x, data = mtcars))})\nnames(res.models) <- paste("mpg", names(mtcars)[-1], sep = "~")\nres.models[["mpg~disp"]]\n\n\n# Call:\n# lm(formula = x, data = mtcars)\n\n# Residuals:\n# Min 1Q Median 3Q Max \n# -4.8922 -2.2022 -0.9631 1.6272 7.2305 \n\n# Coefficients:\n# Estimate Std. Error t value Pr(>|t|) \n# (Intercept) 29.599855 1.229720 24.070 < 2e-16 ***\n# disp -0.041215 0.004712 -8.747 9.38e-10 ***\n# ---\n# Signif. codes: 0 \xe2\x80\x98***\xe2\x80\x99 0.001 \xe2\x80\x98**\xe2\x80\x99 0.01 \xe2\x80\x98*\xe2\x80\x99 0.05 \xe2\x80\x98.\xe2\x80\x99 0.1 \xe2\x80\x98 \xe2\x80\x99 1\n\n# Residual standard error: 3.251 on 30 degrees of freedom\n# Multiple R-squared: 0.7183, Adjusted R-squared: 0.709 \n# F-statistic: 76.51 on 1 and 30 DF, p-value: 9.38e-10\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
11030 次 |
| 最近记录: |