2017-01-03 2 views
0

Моя цель состоит в том, чтобы перекодировать мои переменный в другой переменный с перевернутым значением:переменной Recode с автомобилем - неожиданно переменным (.x значения) рассматриваются как NA

f1_1_recAktuell <- recode(Dat_MonatAktuell$f1_1, "1=10; 2=9; 3=8; 4=7; 5=6; 6=5; 7=4; 8=3; 9=2; 10=1") 

Этот код служит мне знать больше, чем год, но внезапно я получаю это сообщение об ошибке:

Предупреждающее сообщение: Неопределенные значения, обработанные как NA как .x, несовместимы. Пожалуйста, укажите исчерпывающие замены или поставьте .default

Я думаю, что что-то не так с данными, но я не могу выяснить, что. Класс переменной - integer, он не имеет отсутствующих значений.

Кто-нибудь знает, что я могу сделать?

Заранее благодарен!

+0

Просьба воспроизводимый пример (вы можете использовать 'dput' для обмена данными). –

+0

Вы можете просто сделать '11-Dat_MonatAktuell $ f1_1', если это всего лишь значения 1:10 в векторе. Проверьте, используете ли вы 'dplyr', поскольку в' dplyr' есть 'recode', который может маскировать тот, что находится в' car'. В этом случае do 'car :: recode (Dat_MonatAktuell $ f1_1," 1 = 10; 2 = 9; 3 = 8; 4 = 7; 5 = 6; 6 = 5; 7 = 4; 8 = 3; 9 = 2; 10 = 1 ")' – akrun

ответ

0

Предупреждающее сообщение связано с использованием recode от dplyr (возможно, OP загрузил пакет?) Вместо car. Это происходит, когда dplyr::recode маскирует ту же функцию в car. Мы можем указать имя пакета перед функцией как средство т.е. car::recode

v1 <- 1:10 
car::recode(v1, "1=10; 2=9; 3=8; 4=7; 5=6; 6=5; 7=4; 8=3; 9=2; 10=1") 
#[1] 10 9 8 7 6 5 4 3 2 1 

Кроме того, мы можем использовать

11-v1 
#[1] 10 9 8 7 6 5 4 3 2 1 

Предупреждение может быть воспроизведена с dplyr::recode

dplyr::recode(v1, "1=10; 2=9; 3=8; 4=7; 5=6; 6=5; 7=4; 8=3; 9=2; 10=1") 
#[1] "1=10; 2=9; 3=8; 4=7; 5=6; 6=5; 7=4; 8=3; 9=2; 10=1" NA             
#[3] NA             NA             
#[5] NA             NA             
#[7] NA             NA             
#[9] NA             NA             
Warning message: 
Unreplaced values treated as NA as .x is not compatible. 
    Please specify replacements exhaustively or supply .default 

Чтобы получить ожидаемый результат, мы можем также использовать dplyr::recode таким образом

dplyr::recode(v1, `1` = 10, `2` = 9, `3` = 8, `4` = 7, 
       `5` = 6, `6` = 5, `7`=4, `8` = 3, `9` = 2, `10` = 1) 
#[1] 10 9 8 7 6 5 4 3 2 1 
+1

Большое спасибо! Это сработало отлично! перекод замаскирован dplyr. – Rieke

+0

@Rieke благодарим вас за комментарии. Вы также можете проверить [здесь] (http://stackoverflow.com/help/someone-answers) – akrun

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