R - получить режим значений фактора? - PullRequest
2 голосов
/ 06 мая 2011

Как мне получить режим базовых значений в факторе? Например, с учетом test2 ниже, как бы я получил «символ» вместо «числовой»?

test = c( "a" , "b" , "c" )
mode( test ) # "character"
test2 = factor( test )
mode( test2 ) # "numeric"

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Функция mode возвращает режим хранения. Факторы хранятся внутри как целые числа (числовые) и имеют уровни ("a", "b", "c" в вашем примере). Уровни персонажей. Распространенная идиома с факторами заключается в том, чтобы привести их к характеру, что делает это:

> as.character.factor
function (x, ...) 
levels(x)[x]
<environment: namespace:base>
3 голосов
/ 06 мая 2011

Использование

 mode(levels(test2))

для проверки уровней фактора , а не значений.

Вы можете думать о факторе как о хешированной или ключе переменной: вы просто получаете числовые индексы, которые вы используете для индексации на карте от числового значения до текстовых меток. С этой точки зрения очевидно, что вы хотели проверить режим меток , а не значений.

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