Replace NAs in one variable with values from another variable

前端 未结 4 994
终归单人心
终归单人心 2020-12-10 18:25

How can I replace the \"NAs\" of a variable VAR1 with with the values of the second variable VAR2 to create a third variable VAR3 in R? The data looks like this:

<         


        
相关标签:
4条回答
  • 2020-12-10 18:57

    Here is another approach though I like the transform:

    ##  dat <- read.table(text="VAR1    VAR2
    ##   1        NA
    ##   3        NA
    ##   NA       1 
    ##   NA       3
    ##   2        NA
    
    
    dat$VAR3 <- dat[, "VAR1"]
    dat[is.na(dat[, "VAR3"]), "VAR3"] <- dat[is.na(dat[, "VAR3"]), "VAR2"]
    dat
    ##   VAR1. VAR2. VAR3
    ## 1     1    NA    1
    ## 2     3    NA    3
    ## 3    NA     1    1
    ## 4    NA     3    3
    ## 5     2    NA    2
    ## 6    NA     1    1
    
    0 讨论(0)
  • 2020-12-10 19:00

    One way is to use ifelse:

    DF <- transform(DF, VAR3 = ifelse(!is.na(VAR1), VAR1, VAR2))
    

    where transform was used to avoid typing DF$ over and over, but maybe you will prefer:

    DF$VAR3 <- ifelse(!is.na(DF$VAR1), DF$VAR1, DF$VAR2)
    
    0 讨论(0)
  • 2020-12-10 19:03

    One easy way is to use pmax with na.rm = TRUE:

    pmax(VAR1, VAR2, na.rm = TRUE)
    

    The command for data frame dat:

    dat <- transform(dat, VAR3 = pmax(VAR1, VAR2, na.rm = TRUE))
    
    0 讨论(0)
  • 2020-12-10 19:03
    library(dplyr)
    df %>% mutate(VAR3=coalesce(VAR1,VAR2))
    
    0 讨论(0)
提交回复
热议问题