R 转换为因子,然后在图形上按自定义顺序显示

R 转换为因子,然后在图形上按自定义顺序显示,r,forcats,R,Forcats,我在下面的数据框中有一个字符列。我想将其更改为“因子”,以便在使用ggplot打印结果时,x轴上的标签按特定顺序排列: df <- structure(list(Level = c("1", "1", "1", "1", "1", "2", "1", "1" ), Variable = c("lskill_wc", "Grande_Estab", "lskill_wc", "lskill_bc", "hskill_wc", "balcadv", "hskill_bc", "Vinc

我在下面的数据框中有一个字符列。我想将其更改为“因子”,以便在使用ggplot打印结果时,x轴上的标签按特定顺序排列:

  df <-  structure(list(Level = c("1", "1", "1", "1", "1", "2", "1", "1"
), Variable = c("lskill_wc", "Grande_Estab", "lskill_wc", "lskill_bc", 
"hskill_wc", "balcadv", "hskill_bc", "Vinculos_Micro"), estimate = c(0.154462929180099, 
-0.00565989816383741, 0.127039272664461, 0.244657086455149, 0.153358091697942, 
-0.00769107968294057, -0.00592547333520778, 0.138216262540319
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-8L))

df既然你完全改变了问题,我原来的答案就失效了。我不得不改变它,以避免吸引反对票

在这种情况下,最好提出一个新问题

答案的格式与原文完全相同;你似乎只是把你的因子水平搞混了。你所期望的因素排序列表实际上遗漏了一个“高技能蓝领工人”

标签1 lskill_wc 0.154低技能白领工人
#>2 1 Grande_Estab-0.00566大型公司
#>3 1 lskill_wc 0.127低技能白领工人
#>4 1 lskill_bc 0.245低技能蓝领工人
#>5 1 hskill_wc 0.153高技能白领工人
#>6.2巴尔卡德夫-0.00769组件。副词。
#>7 1 hskill_bc-0.00593高技能蓝领工人
#>8 1 Vinculos_Micro 0.138就业率
级别(df$标签)
#>[1]“低技能白领”“低技能蓝领”
#>[3]“高技能白领”“高技能蓝领”
#>[5]“大公司”“雇佣”
#>[7]“高级公司”

由(v0.3.0)于2020-03-04创建,添加
Variable=as.factor(c(..)
将“Variable”更改为factor。您的预期输出是什么?@RonakShah我想实际使用ggplot制作点图。我希望在
Level
中具有不同值的变量具有不同的形状。我还想让它们以特定的顺序显示,由问题中第二个数据框的第二列给出。我不确定到底发生了什么。在我看来,代码混淆了我的价值观。我将通过发布我的真实数据集来改变这个问题
  Level Correspondence
  <chr> <chr>         
1 1     A         
2 2     B    

  Variable       Correspondence         
  <chr>          <chr>                  
1 lskill_wc      Low skill white collar     
2 lskill_bc      Low skill blue collar  
3 hskill_bc      High skill white collar
4 Grande_Estab   Large firm                       
5 Vinculos_Micro Employment
6 balcadv        Comp. Adv