我正在尝试在ggplot2
中绘制一个条形图,其中每个因子都得到观察的平均值。然而,情节是整个人口的平均值,并没有按要素分组/分组,这就是我想要的
这是图表:
当我计算群体的平均值时,存在差异,这就是我想要绘制的。
US Foreign
1 89.76 124.02
以下是数据框中整个列的平均值
mean(clients$OrderSize)
[1] 96.71
这是数据帧的结构。我将CountryType作为一个因素,因为这是我想要分组的:
str(clients)
'data.frame': 252774 obs. of 4 variables:
$ ClientID : Factor w/ 252774 levels "58187855","59210128",..: 19 20 21 22 23 24 25 26 27 28 ...
$ Country : Factor w/ 207 levels "Afghanistan",..: 196 60 139 196 196 40 40 196 196 196 ...
$ CountryType : Factor w/ 2 levels "Foreign","US": 2 1 1 2 2 1 1 2 2 2 ...
$ OrderSize : num 12.95 21.99 5.00 7.50 44.5 ...
这是我的电话:
ggplot(data = clients, aes(x=CountryType, y=mean(OrderSize))) + geom_bar() + ylab("")
我尝试将CountryType设置为没有运气的因素:
ggplot(data = clients, aes(x=factor(CountryType), y=mean(OrderSize))) + geom_bar() + ylab("")
在致电ggplot
之前,我是否需要预先计算两组的均值?或者我错过了哪些内容?
答案 0 :(得分:4)
尝试更像这样的事情:
dat <- data.frame(x = rep(letters[1:2],each = 25),y = 1:50)
ggplot(dat,aes(x = x,y = y)) +
stat_summary(fun.y = mean,geom = "bar")
作为一般说明,请避免像aes(y = value)
这样的惯用语,其中value
是单个值,而不是数据框中列的名称。这并不是打算如何使用 ggplot2 。 (虽然在某些情况下可以打破所有规则......)