2017-01-03 1 views
0

Mon objectif est de recoder ma variable dans une autre variable avec une valeur inversée:variables Recode avec la voiture - de façon inattendue variable (valeur .x) traitée comme 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") 

Ce code m'a servi savoir plus d'un année, mais d'un coup, je reçois ce message d'erreur:

message d'avertissement: les valeurs non remplacés traités comme NA .x n'est pas compatible. S'il vous plaît spécifier les remplacements exhaustivement ou fournir. Défaut

Je suppose qu'il ya quelque chose de mal avec les données, mais je ne peux pas savoir quoi. La classe de la variable est integer, elle n'a aucune valeur manquante.

Est-ce que quelqu'un sait ce que je peux faire?

Merci d'avance!

+0

S'il vous plaît donner un exemple reproductible (vous pouvez utiliser 'dput' pour partager les données). –

+0

Vous pouvez simplement faire '11-Dat_MonatAktuell $ f1_1' s'il ne s'agit que de valeurs 1:10 dans le vecteur. Veuillez vérifier si vous utilisez 'dplyr' car il y a un' recode' dans 'dplyr' qui peut masquer celui de' car'. Dans ce cas, faites '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

Répondre

0

Le message d'avertissement est dû à l'utilisation de recode de dplyr (éventuellement l'OP a chargé le package?) Au lieu de car. Cela se produit lorsque dplyr::recode masque la même fonction dans car. Nous pouvons spécifier le nom du package avant la fonction comme un remède à savoir 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 

, nous pouvons également utiliser

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

L'avertissement peut être reproduit avec 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 

Pour obtenir le résultat attendu, on peut aussi utiliser dplyr::recode de cette façon

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

Merci beaucoup! Cela a parfaitement fonctionné! recode a été masqué par dplyr. – Rieke

+0

@Rieke merci pour les commentaires. Vous pouvez également vérifier [ici] (http://stackoverflow.com/help/someone-answers) – akrun