Факторы имеют двойное представление - «метка»;и базовая кодировка уровня.Какое из этих представлений используется R, может быть тонким и запутанным.
Одна иллюстрация того, где это может быть запутанным, - это подмножество.Вот именованный вектор, символьный вектор и коэффициент с уровнями по умолчанию (в алфавитном порядке)
x = c(foo = 1, bar = 2)
y = c("bar", "foo")
z = factor(y) # default levels are "bar", "foo", i.e., alphabetical
Подмножество x
на y
соответствует значению символа к имени, но подмножество x
на z
использует базовую кодировку уровня.
> x[y]
bar foo
2 1
> x[z]
foo bar
1 2
Это может сделать еще более запутанным, потому что R может работать в разных локалях (например, я использую en_US
locale - US English) и сортировку (сортировка) порядок разных локалей может быть разным - уровни по умолчанию могут отличаться в разных локалях.