2017-05-08 235 views
2

假設我想重新編碼向量等類爲qoute元素dplyr重新編碼

set.seed(123) 
library(dplyr) 
v<-sample(c("Y", "N", ""), 20, TRUE) 
recode(v, `Y`=1, `N`=0, `""`=NA) 
Error: `""` has type 'logical' not 'double' 

我的問題是如何重新編寫元素""v

+1

嘗試重新編碼(V,'Y' = 1,'N' = 0,.DEFAULT = NA_real_) – www

回答

3

我們可以嘗試

recode(v, `Y`=1, `N`=0, `""` = NA_real_) 

或者使用NA_integer

recode(v, `Y`=1L, `N`=0L, `""` = NA_integer_) 

或者另一種選擇是case_when

tibble(v) %>% 
     mutate(v = case_when(v=='Y' ~1, v=='N' ~0, TRUE~NA_real_)) %>% 
     .$v 

或用base R

NA^(!nzchar(v))*(v=='Y')