R:手动订购X轴数据时的堆叠条形图错误(ggplot2)

R:手动订购X轴数据时的堆叠条形图错误(ggplot2),r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,嗨,谢谢你提前抽出时间 我从表格的Excel电子表格中导入了一些数据 # A tibble: 3 x 5 Question `Very Unlikely` Unlikely Likely `Very Likely` <chr> <dbl> <dbl> <dbl> <dbl> 1 when you graduate

嗨,谢谢你提前抽出时间

我从表格的Excel电子表格中导入了一些数据

    # A tibble: 3 x 5
  Question          `Very Unlikely` Unlikely Likely `Very Likely`
  <chr>                       <dbl>    <dbl>  <dbl>         <dbl>
1 when you graduate              20       57     36             7
2 in 10 years                     0       12     68            40
3 in 20 years                     0        2     32            86

对于我正在尝试使用的解决方案,是否有更好的解决方案?如果没有,那么如何解决此错误?我在网上查看了一些解决方案,但似乎没有一个对我有效。

我认为这应该可以解决问题。您不需要将问题列变为因子,但可以使用forcats中的fct_inoorder函数来获得所需的顺序!它会自动识别字符列并将其转换为因子。“顺序”根据因子的出现顺序设置因子级别。也可以通过fct_reorder按不同列中的值对因子级别进行重新排序

库(tidyverse)
图书馆(E2)

谢谢你的回答!我开始想知道为什么R没有这么简单的函数来执行这个任务。这是一个更干净的版本,我正试图这样做。也谢谢你的解释——这很有道理
Fig3_Subset <- melt(Fig3[,c('Question','Very Unlikely','Unlikely','Likely','Very Likely')],id.vars = 1)

Fig3 %>% 
  dplyr::mutate(Question = factor(Question, 
                                    levels = c('in 10 years', 'when you graduate', 'in 20 years'))) %>%

ggplot(Fig3_Subset, mapping = aes(x = Question, y = value)) +
  geom_bar(aes(fill = variable), stat = "identity", position = "dodge") +
  ggtitle("How likely is it that you will be using AI in your work...") +
  theme(axis.title.x=element_blank()) + 
  labs(title = "How likely is it that you will be using AI in your work...", 
       y = "Count",
       fill = "Answer")
Error: Aesthetics must be either length 1 or the same as the data (3): fill and y