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

2024-01-09

鉴于以下数据/tmp/thefile.csv(CSV 文件):

AA,12
AB,1
BA,2

以及以下内容R code:

v = read.csv('/tmp/thefile.csv', header=F)
library('ggplot2')
v$V3 = reorder(v$V1, v$V2)
ggplot(v, aes(x=v$V3, y=v$V2), stat='identity') + geom_bar(fill='dark grey', stat="identity")

该图按升序显示条形,这就是我想要的。如果没有reorder线,图根据因子按字母顺序显示。

However:

> v
  V1  V2  V3
1 AA  12  AA
2 AB   1  AB
3 BA   2  BA

表明顺序仍然是按字母顺序排列的。怎么ggplot知道数字顺序吗?


如果你看v$V3你会得到以下结果(print) 输出:

[1] AA AB BA
attr(,"scores")
AA AB BA 
12  1  2 
Levels: AB BA AA

在最下面一行,您可以找到指定的级别顺序。

通过以下方式可以更轻松地获取此信息levels功能:

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

功能reorder不更改向量中的值(或其顺序),但设置(更改)levelsscores属性来指示因子水平的顺序:

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

$class
[1] "factor"

$scores
AA AB BA 
12  1  2 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解 R 中“重新排序”的工作原理 的相关文章

随机推荐