根据条件更换 NA
Replace NAs according to conditions
我有一个包含大量数值变量的数据集,以及一个字符变量,用于说明该观察是否抑制了低值。在不抑制值的观察中,我想替换 NAs 0(仅针对特定变量),但我无法弄清楚。这是我的数据:
suppressed var1 var2
none 2 6
none NA 6
none 3 7
none NA NA
full 2 6
full 3 6
none 3 NA
partial NA 6
none 2 7
none NA NA
如果 Suppressed=none,我想做的是在 Var 1 中将 NA 更改为 0。我试过了
df$Var1<-if (df$suppressed=='none'&is.na(df$Var1)) 0
else df$Var1
得到了
Error in if (df$suppressed == "none" & is.na(df$Var1)) 0 else df$Var1 :
argument is of length zero
我的 if else 语句有问题吗,或者有其他方法可以做到这一点吗?
这是我的数据结构:
structure(list(suppressed = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 2L, 3L, 2L, 2L), .Label = c("full", "none", "partial"), class = "factor"), var1 = c(2, NA, 3, NA, 2, 3, 3, NA, 2, NA), var2 = c(6, 6, 7, NA, 6, 6, NA, 6, 7, NA)), .Names = c("suppressed", "var1", "var2"), row.names = c(NA, -10L), class = "data.frame")
ifelse()
可以解决问题。它需要三个参数 - 条件、if 输出和 else 输出。
df$Var1 <- ifelse(df$suppressed == 'none' & is.na(df$Var1), 0, Var1)
您的代码中没有任何花括号 {}。
if(df$suppressed == 'none' & is.na(df$Var1)){
df$Var1 <- 0
}else{
df$Var1 <- df$Var1
}
希望对您有所帮助。
我有一个包含大量数值变量的数据集,以及一个字符变量,用于说明该观察是否抑制了低值。在不抑制值的观察中,我想替换 NAs 0(仅针对特定变量),但我无法弄清楚。这是我的数据:
suppressed var1 var2
none 2 6
none NA 6
none 3 7
none NA NA
full 2 6
full 3 6
none 3 NA
partial NA 6
none 2 7
none NA NA
如果 Suppressed=none,我想做的是在 Var 1 中将 NA 更改为 0。我试过了
df$Var1<-if (df$suppressed=='none'&is.na(df$Var1)) 0
else df$Var1
得到了
Error in if (df$suppressed == "none" & is.na(df$Var1)) 0 else df$Var1 :
argument is of length zero
我的 if else 语句有问题吗,或者有其他方法可以做到这一点吗?
这是我的数据结构:
structure(list(suppressed = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 2L, 3L, 2L, 2L), .Label = c("full", "none", "partial"), class = "factor"), var1 = c(2, NA, 3, NA, 2, 3, 3, NA, 2, NA), var2 = c(6, 6, 7, NA, 6, 6, NA, 6, 7, NA)), .Names = c("suppressed", "var1", "var2"), row.names = c(NA, -10L), class = "data.frame")
ifelse()
可以解决问题。它需要三个参数 - 条件、if 输出和 else 输出。
df$Var1 <- ifelse(df$suppressed == 'none' & is.na(df$Var1), 0, Var1)
您的代码中没有任何花括号 {}。
if(df$suppressed == 'none' & is.na(df$Var1)){
df$Var1 <- 0
}else{
df$Var1 <- df$Var1
}
希望对您有所帮助。