有没有一种方法可以将回归的重要变量放入条形图中?

Is there a way that I can put into a barplot the significant variables from regression?

以mtcars为例:

> reg <- lm(mpg ~ cyl + disp + hp + drat + wt, data = mtcars)
> sigvar <- data.frame(summary(reg)$coef[summary(reg)$coef[,4] <= .05, 4]) #extracts significant variables with p-values
> rownames <- rownames(sig) #extracts the variables only

我希望将行名放在条形图的 x 轴上,条形图的高度将是所述行名的平均值。谢谢

我不清楚您希望条形图中的条形高度是多少。然而:

reg = lm(mpg ~ cyl + disp + hp + drat + wt, data = mtcars)
## extracts significant variables with p-values
## note the -1 means you skip the intercept 
sigvar = summary(reg)$coef[-1,4] <= .05 

如果我明白你想要什么,你想要一个条形图,其中包含那些对你的条形高度重要的变量的平均值。您需要将重要变量与数据框中的变量名称匹配

i = match(names(sigvar)[sigvar], names(mtcars))

i 现在包含与显着变量对应的原始数据框的列。不幸的是,对于 mtcars 数据,这意味着 mtcars[,i] 只有 returns 一列,所以通常我会做类似

的事情
barplot(sapply(mtcars[,i], mean))

但这在这里做错了,因为 mtcars[,i] returns 一个向量。让我们假设参数 i = c(5,6),那么这将有效

i = 5:6
barplot(sapply(mtcars[,i], mean))