首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何指定在按R中的两个变量分组后使用fct_reorder时要使用的变量值

如何指定在按R中的两个变量分组后使用fct_reorder时要使用的变量值
EN

Stack Overflow用户
提问于 2019-10-09 22:47:06
回答 1查看 40关注 0票数 1

我想要根据他们报告的标题和性别来绘制回答调查的人数,我想根据列出该标题的人数对酒吧进行排序。问题是,绘图似乎是根据“其他”报告的值对其进行排序,而我更喜欢根据“男性”报告的值对它们进行排序(简单地说,因为更多的男性响应,这会使可视化效果更好)。以下是我的数据:

代码语言:javascript
复制
structure(list(title = c("Penetration Tester", "Penetration Tester", 
"Application Security", "Infrastructure Security", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Security Engineer", "Security Engineer", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Audit", "Penetration Tester", 
"Research", "Penetration Tester", "Penetration Tester", "Security Consultant", 
"Sr. Security Consultant", "Security Engineer", "Compliance", 
"Penetration Tester", "Penetration Tester", "Red Team", "Penetration Tester", 
"Cloud Security", "Incident Response", "Penetration Tester", 
"Penetration Tester", "Incident Response", "Director", "Support", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Red Team", "Audit", "Security Consultant", 
"Incident Response", "Infrastructure Security", "Red Team", "Red Team", 
"Penetration Tester", "Senior Security Architect", "Penetration Tester", 
"Red Team", "Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Managing Consultant", "Incident Response", "Security Analyst", 
"Penetration Tester", "Penetration Tester", "Compliance", "Red Team", 
"Incident Response", "Penetration Tester", "Penetration Tester", 
"Infrastructure Security", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Research", "Application Security", "Penetration Tester", 
"Penetration Tester", "Application Security", "Penetration Tester", 
"Penetration Tester", "Security Engineer", "Red Team", "Penetration Tester", 
"Penetration Tester", "Red Team", "Security Engineer", "Incident Response", 
"Infrastructure Security", "Red Team", "Penetration Tester", 
"Research", "InfoSec Intern", "Incident Response", "Incident Response", 
"Research", "Penetration Tester", "Red Team", "Security Engineer", 
"Penetration Tester", "Incident Response", "Penetration Tester", 
"Penetration Tester", "Red Team", "Incident Response", "Penetration Tester", 
"Penetration Tester", "Infrastructure Security", "Red Team", 
"Penetration Tester", "Penetration Tester", "Threat Intel/Analyst", 
"Penetration Tester", "SOC Analyst", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Infrastructure Security", "Security Consultant", 
"Penetration Tester", "Penetration Tester", "Red Team", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Threat Intel/Analyst", "Application Security", "Penetration Tester", 
"Compliance", "Security Architect", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Security Architect", "Penetration Tester", 
"Penetration Tester", "Red Team", "Red Team", "Security Engineer", 
"Research", "Security Engineer", "Incident Response", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Red Team", "Security Engineer", 
"Incident Response", "Penetration Tester", "Penetration Tester", 
"Security Engineer", "Penetration Tester", "Security Engineer", 
"Penetration Tester", "Penetration Tester", "Security Engineer", 
"Penetration Tester", "Threat Hunter", "Penetration Tester", 
"Penetration Tester", "Red Team", "Penetration Tester", "Incident Response", 
"Penetration Tester", "Red Team", "Penetration Tester", "Infrastructure Security", 
"Compliance", "Info Security Manager & Data Protection Officer", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Infrastructure Security", "Penetration Tester", 
"Security Engineer", "Security Engineer", "Penetration Tester", 
"Incident Response", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Red Team", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Defensive Efficacy Testing", "Incident Response", "Information Security Analyst", 
"Penetration Tester", "Penetration Tester", "Threat Hunter", 
"Penetration Tester", "Penetration Tester", "Penetration Tester", 
"Security Engineer", "Cyber Consultant", "Security Engineer", 
"Application Security", "Research", "Research", "Research", "Red Team", 
"Application Security", "Penetration Tester", "Security Engineer", 
"Red Team", "Information Security Analyst", "Sales Engineer", 
"Penetration Tester", "Red Team", "Infrastructure Security", 
"Penetration Tester", "Security Engineer", "Incident Response", 
"Incident Response", "Penetration Tester", "Incident Response", 
"Penetration Tester", "Incident Response", "Application Security", 
"Incident Response", "Incident Response", "Security Engineer", 
"Penetration Tester", "Incident Response", "Infrastructure Security", 
"SOC Analyst", "Penetration Tester", "Penetration Tester", "Senior Software Engineer ", 
"Red Team", "Audit", "Incident Response", "Senior Security Engineer", 
"Application Security", "Research", "Penetration Tester", "Governance", 
"Penetration Tester", "Penetration Tester", "Threat Intel/Analyst", 
"Threat Intel/Analyst", "SOC Analyst", "Application Security", 
"Application Security", "Security Engineer", "Penetration Tester", 
"Incident Response", "Incident Response", "Security Architect", 
"Incident Response", "Security Engineer", "Research", "Red Team", 
"Penetration Tester", "Application Security", "Penetration Tester", 
"Research", "Application Security", "Penetration Tester", "Threat Intel/Analyst", 
"Infrastructure Security", "SOC Analyst", "CISO", "Incident Response", 
"Red Team", "Infrastructure Security", "Compliance", "Security Engineer", 
"Penetration Tester", "Incident Response", "Penetration Tester", 
"Incident Response", "SOC Analyst", "Penetration Tester", "Research", 
"Incident Response", "Application Security", "Threat Intel/Analyst", 
"SOC Analyst", "Application Security", "Penetration Tester", 
"Penetration Tester", "Security Engineer", "Security Architect", 
"Penetration Tester", "Incident Response", "Incident Response", 
"Penetration Tester", "Application Security", "Penetration Tester", 
"Security Engineer", "Incident Response", "Penetration Tester", 
"Incident Response", "Penetration Tester", "Penetration Tester", 
"Security Engineer", "Penetration Tester", "Incident Response", 
"SOC Analyst", "Penetration Tester", "Penetration Tester", "Red Team", 
"Red Team", "Red Team", "Cloud Security", "Penetration Tester", 
"Security Engineer", "Incident Response", "CISO", ".", "Penetration Tester", 
"Incident Response", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Penetration Tester", "Compliance", "Security Architect", 
"SOC Analyst", "Application Security", "Incident Response", "SOC Analyst", 
"Security Operations", "Incident Response", "Security Engineer", 
"Penetration Tester", "Security Architect", "Application Security", 
"Security Specialist", "Security Architect", "Compliance", "Incident Response", 
"Penetration Tester", "IT Security Administrator", "Penetration Tester", 
"Application Security", "Red Team", "Penetration Tester", "Penetration Tester", 
"Penetration Tester", "Security Consultant", "Incident Response", 
"Red Team", "Penetration Tester", "Penetration Tester", "CISO", 
"Penetration Tester", "Security Engineer", "Security Engineer", 
"Penetration Tester", "Security Engineer", "Application Security", 
"Penetration Tester", "Senior It Manager", "Penetration Tester", 
"Research", "Infrastructure Security", "Penetration Tester", 
"Incident Response", "Product Manager", "Penetration Tester", 
"Incident Response", "Incident Response", "Penetration Tester", 
"Application Security", "Penetration Tester", "Penetration Tester", 
"Incident Response", "Product Manager", "Red Team", "Threat Intel/Analyst", 
"Penetration Tester", "SOC Analyst", "Penetration Tester", "Penetration Tester", 
"Incident Response", "Penetration Tester", "Infrastructure Security", 
"Threat Intel/Analyst", "Penetration Tester", "Incident Response", 
"Penetration Tester", "Security Engineer", "Penetration Tester", 
"Penetration Tester", "Incident Response", "Penetration Tester", 
"Security Architect", "Penetration Tester", "Application Security", 
"Security Engineer", "Security Architect", "Infrastructure Security", 
"Incident Response", "Threat Intel/Analyst", "Application Security", 
"Incident Response", "Security Engineer", "Incident Response", 
"Incident Response", "Penetration Tester", "Security Engineer", 
"Security Engineer", "Infrastructure Security", "Incident Response", 
"Security Engineer", "Application Security", "Incident Response", 
"Penetration Tester", "Penetration Tester", "Incident Response", 
"Security Engineer", "Penetration Tester", "Red Team", "Application Security", 
"Incident Response", "Penetration Tester", "Security Engineer", 
"Incident Response", "Penetration Tester", "Audit", "Infrastructure Security", 
"Penetration Tester", "Threat Intel/Analyst", "Audit", "Security Architect", 
"Threat Hunter", "Application Security", "SOC Analyst", "Penetration Tester", 
"Incident Response", "Security Engineer", "Penetration Tester", 
"Penetration Tester", "Information security officer", "Incident Response", 
"Incident Response", "Incident Response", "Compliance", "Penetration Tester", 
"Security Engineer", "Incident Response", "Threat Hunter", "Penetration Tester", 
"Incident Response", "Penetration Tester", "Incident Response", 
"Penetration Tester", "Security Engineer", "Governance", "Security Engineer"
), sex = structure(c(2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 2L, 3L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 3L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
1L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 3L, 1L, 1L, 3L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 3L, 2L, 
2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 3L, 2L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 3L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 3L, 2L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 3L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 1L, 2L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 1L, 3L, 2L, 1L, 2L, 2L, 1L), .Label = c("Male", 
"Female", "Other"), class = c("ordered", "factor"))), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -469L))

这是我用来尝试生成图的代码:

代码语言:javascript
复制
library(ggplot2)
library(dplyr)
library(forcats)

df %>%
    count(title, sex) %>%
    filter(!is.na(sex) & nchar(title) > 1) %>%
    ggplot() +
    geom_bar(aes(x=fct_reorder(title, n), y=n), stat="identity") +
    facet_wrap(~ sex, nrow=1, scales="fixed") +
    scale_y_continuous(expand=c(0, 0)) +
    labs(x="", y="No. People Reporting", 
         title="Significantly more men than women reported their salaries",
         subtitle="Red teamers appear to be much more likely to report their salaries") +
    coord_flip() +
    theme(panel.background=element_blank(),
          axis.line=element_line(color="black"))

我的预期输出将从左到右列出“男性”、“女性”和“其他”方面,前三个标题是“渗透测试器”、“事件响应”和“安全工程师”。

如何告诉R根据"Male“子集中的值对title进行重新排序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-09 23:09:36

我将按性别对行进行排序(以便首先对sex = "Male"行进行排序)/ count &在本例中使用fct_inorder而不是fct_reorder

代码语言:javascript
复制
df %>%
  count(title, sex) %>%
  filter(!is.na(sex) & nchar(title) > 1) %>%

  tidyr::complete(sex, title, fill = list(n = 0)) %>% # add missing combinations so that
                                                      # every title appears for every gender
  arrange(sex, n) %>% 
  mutate(title = fct_inorder(title)) %>%

  ggplot() +
  geom_bar(aes(x=title, y=n), stat="identity") +
  facet_wrap(~ sex, nrow=1, scales="fixed") +
  scale_y_continuous(expand=c(0, 0)) +
  labs(x="", y="No. People Reporting", 
       title="Significantly more men than women reported their salaries",
       subtitle="Red teamers appear to be much more likely to report their salaries") +
  coord_flip() +
  theme(panel.background=element_blank(),
        axis.line=element_line(color="black"))

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58306795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档