Есть ли веские основания для того, чтобы столбцы были символами, а не факторами? - PullRequest
0 голосов
/ 16 сентября 2018

Этот ум кажется глупым вопросом, но после работы с R в течение нескольких месяцев я понял, что часто преобразую строки в факторы, например, функция tabulate не работает со строками.

В этот момент я просто обдумываю всегда преобразовывать любую строку в фактор. Но возникает вопрос, есть ли причина не делать этого (кроме операций над самой строкой)?

1 Ответ

0 голосов
/ 16 сентября 2018

Факторы имеют двойное представление - «метка»;и базовая кодировка уровня.Какое из этих представлений используется 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) и сортировку (сортировка) порядок разных локалей может быть разным - уровни по умолчанию могут отличаться в разных локалях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...