【发布时间】:2012-08-05 04:11:16
【问题描述】:
我正在使用 ggplot2 并试图生成一个显示以下数据的图。
df=data.frame(score=c(4,2,3,5,7,6,5,6,4,2,3,5,4,8),
age=c(18,18,23,50,19,39,19,23,22,22,40,35,22,16))
str(df)
df
我不想绘制变量的频率图(见下面的代码),而是想生成每个 x 值的平均值图。所以我想绘制每个年龄段的平均分数。在 x 轴上 18 岁时,我们在 y 轴上可能有一个 3 的分数。在 23 岁时,我们的平均分数可能为 4.5,依此类推(编辑:平均值已更正)。理想情况下,这将用条形图表示。
ggplot(df, aes(x=factor(age), y=factor(score))) + geom_bar()
Error: stat_count() must not be used with a y aesthetic.
只是不确定如何在 R 中使用 ggplot2 执行此操作,并且似乎在此类图上找不到任何内容。从统计上看,我不知道我想要绘制的情节是否正确,但那是另一家商店。
谢谢!
【问题讨论】:
-
您是否想要平均值,因为从您的数据集中,18 岁时的平均值是 3(不是 3.5),而 23 岁时是 4.5(不是 6.2)?
-
是的,我想要平均值。在那个例子中,我只是想出了一些数字。
-
@ATMathew,但是由于您要努力提供一些示例数据,您还应该确保您的示例输出对于所提供的数据是准确的。否则,会导致不必要的混乱......
-
就像评论一样,如果你有不同的组,比如性别,并且你想要一个带有组均值的图,
aes(x=factor(age), y=score, group = gender, color = gender)),group将样本分开color只是给它们不同的颜色和图例