2014-09-24 2 views
0

Я пытаюсь преобразовать коэффициент (ticket_other) в кадре данных (p2) в целое число. После справочного руководства R, а также других советов от других, этот код должен работать:Проблемы с коэффициентами принуждения в intergers

as.numeric(levels(p2$tickets_other))[p2$tickets_other] 

Колонном действительно содержит Nas, и поэтому я получаю предупреждение:

Warning message: 
NAs introduced by coercion 

который прекрасен, но после того, принуждая его к цифровой, он по-прежнему читается как фактор: (. as.character())

class(p2$tickets_other) 
[1] "factor" 

Тот же результат будет, если я использую as.numeric:

as.numeric(as.character(p2$tickets_other)) 
Warning message: 
NAs introduced by coercion 
class(p2$tickets_other) 
[1] "factor" 
+0

Просьба указать некоторые данные –

+0

Опубликовать вывод команды 'head (p2)' или 'head (p2 $ tickets_other)' здесь. – rnso

+0

Не глядя на ваши данные. Я предполагаю, что вам нужно 'as.numeric (as.character (p2 $ tickets_other))' – Vlo

ответ

0

У меня проблема. Это было очень просто. Команда:

as.numeric(levels(p2$tickets_other))[p2$tickets_other] 

правильно, но мне не удалось сохранить результат:

p2$tickets_other <- as.numeric(levels(p2$tickets_other))[p2$tickets_other] 

Простая ошибка, это ретроспективе. Спасибо DMT за предложение.

0

Вы делаете:

as.numeric(levels(p2$tickets_other))[p2$tickets_other] 

Вы читаете уровни от p2$tickets_other (вектора), а затем преобразовать их в числовой (еще векторе), то доступ к индексам этого вектора в соответствии с значения в p2$tickets_other

Я не могу себе представить, что это то, что вы действительно хотите сделать.

Может быть, просто

as.numeric(p2$tickets_other) 

является то, что вы хотите?

Смежные вопросы