R 按性别和值对百分比堆叠条形图重新排序

R 按性别和值对百分比堆叠条形图重新排序,r,ggplot2,dplyr,tidyverse,R,Ggplot2,Dplyr,Tidyverse,我试图按性别重新排列我的价值观,从最高的女性到最低的女性 此数据集的第一个值是: sex,values,citizen_full F,543,Aghanistan M,376,Afghanistan F,131,Albania M,141,Albania F,134,Argentina M,107,Argentina F,325,Austria M,231,Austria 您可以使用fct\u重新排序功能: df <- tibble::tribble( ~sex, ~values

我试图按性别重新排列我的价值观,从最高的女性到最低的女性

此数据集的第一个值是:

sex,values,citizen_full
F,543,Aghanistan 
M,376,Afghanistan
F,131,Albania
M,141,Albania
F,134,Argentina
M,107,Argentina
F,325,Austria
M,231,Austria

您可以使用
fct\u重新排序
功能:

df <- tibble::tribble(
  ~sex, ~values, ~citizen_full,
   "F",    543L,  "Aghanistan",
   "M",    376L, "Afghanistan",
   "F",    131L,     "Albania",
   "M",    141L,     "Albania",
   "F",    134L,   "Argentina",
   "M",    107L,   "Argentina",
   "F",    325L,     "Austria",
   "M",    231L,     "Austria"
  )

library(dplyr)
library(ggplot2)
library(forcats)
df %>% 
  group_by(citizen_full, sex) %>% 
  mutate(sum_sex_grouped = sum(values)) %>% 
  group_by(citizen_full) %>% 
  mutate(sum_citizien = sum(values),
         sex_percent = sum_sex_grouped/sum_citizien,
         percent_women = if_else(sex == "F", sex_percent, 0)) %>% 
ggplot(aes(x = fct_reorder(citizen_full, desc(percent_women)), y = values, fill = sex)) +
  geom_bar(position = 'fill', stat = 'identity') +
  theme_minimal()
df%
组别(公民人数、性别)%>%
变异(总和性别分组=总和(值))%>%
分组人(公民人数)%>%
变异(sum_citizien=sum(值),
性别百分比=总和性别分组/总和城市,
女性百分比=如果其他(性别=“F”,性别百分比,0))%>%
ggplot(aes(x=fct\U重新排序(公民满,描述(女性百分比)),y=value,fill=sex))+
几何图形栏(位置='fill',状态='identity')+
主题_极小值()

您可以使用
fct\u重新排序
功能:

df <- tibble::tribble(
  ~sex, ~values, ~citizen_full,
   "F",    543L,  "Aghanistan",
   "M",    376L, "Afghanistan",
   "F",    131L,     "Albania",
   "M",    141L,     "Albania",
   "F",    134L,   "Argentina",
   "M",    107L,   "Argentina",
   "F",    325L,     "Austria",
   "M",    231L,     "Austria"
  )

library(dplyr)
library(ggplot2)
library(forcats)
df %>% 
  group_by(citizen_full, sex) %>% 
  mutate(sum_sex_grouped = sum(values)) %>% 
  group_by(citizen_full) %>% 
  mutate(sum_citizien = sum(values),
         sex_percent = sum_sex_grouped/sum_citizien,
         percent_women = if_else(sex == "F", sex_percent, 0)) %>% 
ggplot(aes(x = fct_reorder(citizen_full, desc(percent_women)), y = values, fill = sex)) +
  geom_bar(position = 'fill', stat = 'identity') +
  theme_minimal()
df%
组别(公民人数、性别)%>%
变异(总和性别分组=总和(值))%>%
分组人(公民人数)%>%
变异(sum_citizien=sum(值),
性别百分比=总和性别分组/总和城市,
女性百分比=如果其他(性别=“F”,性别百分比,0))%>%
ggplot(aes(x=fct\U重新排序(公民满,描述(女性百分比)),y=value,fill=sex))+
几何图形栏(位置='fill',状态='identity')+
主题_极小值()

还需要包括“图书馆(猫用)”这就像一个符咒,谢谢兄弟@Daniel,在tidyverse软件包中,forcats库也是标准的。还需要包括“library(forcats)”这就像一个符咒,谢谢兄弟@Daniel,forcats库在tidyverse包中也是标准的。