如何分组数据,然后在ggplot2中绘制条形图 [英] How to group data and then draw bar chart in ggplot2

查看:804
本文介绍了如何分组数据,然后在ggplot2中绘制条形图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有3栏的数据框(df),例如:

pre $ NUMERIC1:NUMERIC2:GROUP(CHARACTER):
100 1 A
200 2 B
300 3 C
400 4 A

我想按GROUP(CHARACTER)对NUMERIC1进行分组,然后计算每个组的平均值。
类似于此:

  mean(NUMERIC1):GROUP(字符):
250 A
200 b
300 c

最后我想用ggplot2绘制条形图在x轴上具有GROUP(字符)a = nd在y轴上的平均(NUMERIC)。
它应该是这样的:





我用过

 均值<  -  tapply(df $ NUMERIC1,df $ GROUP(CHARACTER),FUN =平均值)

但我不确定是否可以,即使是这样,我也不知道我下一步应该做什么

解决方案

c $ c> res < - aggregate(NUMERIC1〜GROUP,data = df,FUN = mean)
ggplot(res,aes(x = GROUP,y = NUM​​ERIC1))+ geom_bar(stat =identity)



data



  df < - 结构(列表(NUMERIC1 = c(100L,200L,300L,400L),NUMERIC2 = 1:4,
GROUP =结构(c(1L,2L,3L,1L),。标签= c(A ,B,
C),class =factor)),.Names = c(NU MERIC1,NUMERIC2,
GROUP),class =data.frame,row.names = c(NA,-4L))


I have data frame (df) with 3 columns e.g.

NUMERIC1:      NUMERIC2:      GROUP(CHARACTER):
100            1               A
200            2               B
300            3               C
400            4               A

I want to group NUMERIC1 by GROUP(CHARACTER), and then calculate mean for each group. Something like that:

mean(NUMERIC1):  GROUP(CHARACTER):
250                  A
200                  B
300                  C

Finally I'd like to draw bar chart using ggplot2 having GROUP(CHARACTER) on x axis a =nd mean(NUMERIC) on y axis. It should look like:

I used

mean <- tapply(df$NUMERIC1, df$GROUP(CHARACTER), FUN=mean)

but I'm not sure if it's ok, and even if it's, I don't know what I supposed to do next.

解决方案

Try something like:

res <- aggregate(NUMERIC1 ~ GROUP, data = df, FUN = mean)
ggplot(res, aes(x = GROUP, y = NUMERIC1)) + geom_bar(stat = "identity")

data

df <- structure(list(NUMERIC1 = c(100L, 200L, 300L, 400L), NUMERIC2 = 1:4, 
    GROUP = structure(c(1L, 2L, 3L, 1L), .Label = c("A", "B", 
    "C"), class = "factor")), .Names = c("NUMERIC1", "NUMERIC2", 
"GROUP"), class = "data.frame", row.names = c(NA, -4L))

这篇关于如何分组数据,然后在ggplot2中绘制条形图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆