2017-09-10 36 views
1

我想知道如何使用dplyr替换列中的NA与其他列的值在R中。 MWE低于。使用R代替其他列中的NA

Letters <- LETTERS[1:5] 
Char <- c("a", "b", NA, "d", NA) 
df1 <- data.frame(Letters, Char) 
df1 

library(dplyr] 

df1 %>% 
    mutate(Char1 = ifelse(Char != NA, Char, Letters)) 

    Letters Char Char1 
1  A a NA 
2  B b NA 
3  C <NA> NA 
4  D d NA 
5  E <NA> NA 

回答

2

您可以使用​​3210:

library(dplyr) 

df1 <- data.frame(Letters, Char, stringsAsFactors = F) 

df1 %>% 
    mutate(Char1 = coalesce(Char, Letters)) 

    Letters Char Char1 
1  A a  a 
2  B b  b 
3  C <NA>  C 
4  D d  d 
5  E <NA>  E