英文:
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 <- 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
)
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")
您也可以交换 var
和 sex
。
英文:
Using 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")
You can also reverse var
and sex
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论