柱状图,使用dplyr/ggplot,男性和女性的柱并排。

huangapple go评论84阅读模式
英文:

Bar-chart with dplyr/ggplot with male/female bars side by side

问题

这是示例代码:

df <- read.table(text = 
  "sex	var	value
  m	a	1
  m	a	1
  m	a	0
  m	b	0
  m	b	0
  f	a	1
  f	a	0
  f	b	0
  f	b	1", 
header = TRUE, 
stringsAsFactors = FALSE
  )

我想要创建的是一个柱状图,其中显示了每个 var 值在每个 sex 中的比例。

所以在上面的数据中,我会得到:

var a : 
        m : 0.6
        f : 0.5
var b : 
        m : 0
        f : 0.5

但使用 ggplot 表示为柱状图。

英文:

I'm trying to

Here's the example :

df &lt;- read.table(text = 
  &quot;sex	var	value
  m	a	1
  m	a	1
  m	a	0
  m	b	0
  m	b	0
  f	a	1
  f	a	0
  f	b	0
  f	b	1&quot;, 
header = TRUE, 
stringsAsFactors = FALSE
  )

What I'd like to create is a bar-chart which has the proportions for each of
the var values, for each sex.

So in the above data I would have :

var a : 
        m : 0.6
        f : 0.5
var b : 
        m : 0
        f : 0.5

But expressed as a bar-chart using ggplot

答案1

得分: 1

使用 tidyverse

df %>%
  group_by(var, sex) %>%
  summarise(vals = mean(value)) %>%
  ungroup() %>%
  ggplot(aes(x = var, y = vals, col = sex, fill = sex, group = sex)) +
  geom_bar(stat = "identity")

您也可以交换 varsex

英文:

Using tidyverse:

df %&gt;% 
group_by(var, sex) %&gt;% 
summarise(vals = mean(value)) %&gt;%
ungroup() %&gt;% 
ggplot(aes(x = var, y = vals, col = sex, fill = sex, group = sex)) + 
geom_bar(stat = &quot;identity&quot;)

You can also reverse var and sex.

huangapple
  • 本文由 发表于 2020年1月4日 00:22:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/59581930.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定