我想将值6设置为变量" M3_rankin_factor"当" M3_mortalite"变量等于1.
summary(M2clean$M3_rankin_factor)
0 1 2 3 4 5 6 NA's
176 71 44 31 52 29 3 71
summary(M2clean$M3_mortalite)
Non Oui NA's
402 34 41
for (i in rownames(M2clean)) {if(!is.na(M2clean$M3_mortalite[i]) && M2clean$M3_mortalite == 1) M2clean$M3_rankin_factor[i] <- 6}
summary(M2clean$M3_rankin_factor)
0 1 2 3 4 5 6 NA's
176 71 44 31 52 29 3 71
我不明白
答案 0 :(得分:1)
试试这个
M2clean$M3_rankin_factor[M2clean$M3_mortalite == 1] <- 6
答案 1 :(得分:0)
您可以使用
M2clean$M3_rankin_factor[which(M2clean$M3_mortalite==1)] <- 6
只要1和6是所涉及变量的有效因子水平
使用which
代替M2clean$M3_mortalite==1
可以避免NA问题
我已经测试了它:它也适用于因素
f <- as.factor(c(NA,1,2,3))
#[1] <NA> 1 2 3
f[which(f==1)] <- 3
#[1] <NA> 3 2 3
答案 2 :(得分:0)
谢谢,它有效。 另一个答案:
M2clean[M2clean$M3_mortalite == "Oui" & (!is.na(M2clean$M3_mortalite)), "M3_rankin_factor"] <- 6