这是我的代码:
library(tidyverse)
x <- c("Jan","Aug", "Feb")
sort(x)
#> [1] "Aug" "Feb" "Jan"
factor(x)
#> [1] Jan Aug Feb
#> Levels: Aug Feb Jan
我知道排序功能将按字母顺序对x进行排序。而且我认为,如果仅分解(x)但不传递任何级别,它将仍然按字母顺序(默认方式)对x进行排序。但是事实证明是上面代码中所示的结果。我的意思是,为什么结果没有按字母顺序排序?在此先感谢许多人!
不,levels
和的factor
打印顺序没有关系。factor
不会更改向量的顺序。levels
的factors
通常是按照字母的方式,除非它们被明确提及。例如,
let <- letters[1:10]
factor(let)
#[1] a b c d e f g h i j
#Levels: a b c d e f g h i j
设置级别会明确反转级别。
factor(let, levels = rev(let))
# [1] a b c d e f g h i j
#Levels: j i h g f e d c b a
分配随机级别。
set.seed(123)
factor(let, levels = sample(let))
#[1] a b c d e f g h i j
#Levels: c j b h f i a g e d
我们可以看到,在所有情况下,levels
它们是不同的,但是无论levels
打印方式如何,都不会改变,因为factor
不会改变顺序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句