2

我的目标是将我的变量重新编码为另一个具有反转值的变量:

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 的未替换值不兼容。请详细指定替换或提供 .default

我猜数据有问题,但我不知道是什么。变量的类是integer,它没有缺失值。

有谁知道我能做什么?

提前致谢!

4

1 回答 1

2

警告消息是由于使用recodefrom dplyr(可能是 OP 加载了包?)而不是 from 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
于 2017-01-03T15:26:53.980 回答