了解R中“重新排序”的工作原理

了解R中“重新排序”的工作原理,r,ggplot2,R,Ggplot2,在csv文件/tmp/thefile.csv中提供以下数据: AA,12 AB,1 BA,2 以及以下R代码: 图中以升序显示条形图,这正是我想要的。如果没有重新排序行,绘图将根据因子按字母顺序显示 然而: > v V1 V2 V3 1 AA 12 AA 2 AB 1 AB 3 BA 2 BA 显示顺序仍然是字母顺序。ggplot是如何知道数字顺序的?如果查看v$V3,您会得到以下打印输出: 在最低的一行中,可以找到指定的级别顺序 使用“级别”功能可以更轻松地获

在csv文件/tmp/thefile.csv中提供以下数据:

AA,12
AB,1
BA,2
以及以下R代码:

图中以升序显示条形图,这正是我想要的。如果没有重新排序行,绘图将根据因子按字母顺序显示

然而:

> v
  V1  V2  V3
1 AA  12  AA
2 AB   1  AB
3 BA   2  BA
显示顺序仍然是字母顺序。ggplot是如何知道数字顺序的?

如果查看v$V3,您会得到以下打印输出:

在最低的一行中,可以找到指定的级别顺序

使用“级别”功能可以更轻松地获取此信息:

levels(v$V3)
[1] "AB" "BA" "AA"
函数reorder不会更改向量中的值或它们的顺序,但会设置更改级别和分数属性以指示因子级别的顺序:

attributes(v$V3)
$levels
[1] "AB" "BA" "AA"

$class
[1] "factor"

$scores
AA AB BA 
12  1  2 
如果查看v$V3,将获得以下打印输出:

在最低的一行中,可以找到指定的级别顺序

使用“级别”功能可以更轻松地获取此信息:

levels(v$V3)
[1] "AB" "BA" "AA"
函数reorder不会更改向量中的值或它们的顺序,但会设置更改级别和分数属性以指示因子级别的顺序:

attributes(v$V3)
$levels
[1] "AB" "BA" "AA"

$class
[1] "factor"

$scores
AA AB BA 
12  1  2