使用多个条件替换数据
Substituting data using multiple conditions
我正在尝试在给定一组条件的情况下替换列观察值。数据如下:
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
}
}
}
而且这个工作非常好。我很好奇我是否做对了,或者是否有计算更简单的方法来做对。
提前谢谢你。 :)
假设您要按照文中所述替换 "female"(而不是像您的代码中那样替换 "male"):
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
试试这个:
data[data$Sex=='female' & is.na(data$Age),'Age']<-30.7
我正在尝试在给定一组条件的情况下替换列观察值。数据如下:
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
}
}
}
而且这个工作非常好。我很好奇我是否做对了,或者是否有计算更简单的方法来做对。
提前谢谢你。 :)
假设您要按照文中所述替换 "female"(而不是像您的代码中那样替换 "male"):
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
试试这个:
data[data$Sex=='female' & is.na(data$Age),'Age']<-30.7