R 绘制按因素分组的数据框中每列的平均值/中值

R 绘制按因素分组的数据框中每列的平均值/中值,r,plot,ggplot2,R,Plot,Ggplot2,我正试图做一个分组条形图,我遇到了麻烦。例如,如果我使用的是mtcars数据集,我想按“vs”列(col#8)对所有内容进行分组,找到所有剩余列的平均值,然后按组绘制它们 下面是一个非常糟糕的例子,说明我正在尝试做什么,我知道这是不正确的 理想情况下,vs=1和vs=0的mpg将并排,然后是cyl的平均值并排,等等。我不在乎dyplr是否跳过聚合,或者是否使用ggplot,或者即使不需要聚合步骤……只是想找到一种方法来做到这一点,因为这让我发疯 df = mtcars agg = aggrega

我正试图做一个分组条形图,我遇到了麻烦。例如,如果我使用的是mtcars数据集,我想按“vs”列(col#8)对所有内容进行分组,找到所有剩余列的平均值,然后按组绘制它们

下面是一个非常糟糕的例子,说明我正在尝试做什么,我知道这是不正确的

理想情况下,vs=1和vs=0的mpg将并排,然后是cyl的平均值并排,等等。我不在乎dyplr是否跳过聚合,或者是否使用ggplot,或者即使不需要聚合步骤……只是想找到一种方法来做到这一点,因为这让我发疯

df = mtcars
agg = aggregate(df[,-8], by=list(df$vs), FUN=mean)
agg
barplot(t(agg), beside=TRUE, col=df$vs))
试一试

或使用
base R

 m1 <- as.matrix(agg[-1])
 row.names(m1) <- agg[,1]
 barplot(m1, beside=TRUE, col=c('red', 'blue'), legend=row.names(m1))
m1
 m1 <- as.matrix(agg[-1])
 row.names(m1) <- agg[,1]
 barplot(m1, beside=TRUE, col=c('red', 'blue'), legend=row.names(m1))