使用多个条件替换数据

时间:2017-12-01 22:32:51

标签: r data-science

考虑到一组条件,我试图替换列观察的值。数据如下:

Sex     Age
male    34.5
female  NA
male    62
male    NA

我想要替换性别为女性且年龄值为NA的数据。

我目前正在使用for循环:

for(i in 1:length(data$Sex){
     if(data$Sex[i]=="male"){
        if(is.na(data$Age[i])){
            data$Age[i] <- 30.7
        }
    }
 }

这项工作非常好。我很好奇,如果我做对了,或者有一个计算上更简单的方法来做到这一点。

提前谢谢你。 :)

2 个答案:

答案 0 :(得分:1)

假设您想要替换文本中描述的“女性”(而不是代码中的“男性”):

library(dplyr)

data %>%
  mutate(Age = if_else(Sex == "female" & is.na(Age), 30.7, Age))

输出:

# A tibble: 4 x 2
     Sex   Age
   <chr> <dbl>
1   male  34.5
2 female  30.7
3   male  62.0
4   male    NA

答案 1 :(得分:0)

试试这个:

 data[data$Sex=='female' & is.na(data$Age),'Age']<-30.7