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

时间:2017-01-09 01:55:18

标签: r plot 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

我希望将rownames放在barplot的x轴上,barplot的高度将是所述rownames的平均值。感谢。

1 个答案:

答案 0 :(得分:0)

我不清楚你想要什么样的酒吧高度。但是:

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]只返回一列,所以通常我会做类似的事情

barplot(sapply(mtcars[,i], mean))

但是这样做不对,因为mtcars[,i]会返回一个向量。让我们假设参数为i = c(5,6),那么这将起作用

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