首页 > 解决方案 > 使用 ifelse 在 r 中创建新列

问题描述

我的代码是:

data$E<-ifelse(data$D==data$B, "b", ifelse(data$D==data$C, "c", "unknowwn"))

结果:

  A   B   C   D   E
1 16  16  NA  16  b
2 20  NA  20  20  NA
3 24  NA  NA  24  NA

但我想要的是:

  A   B   C   D   E
1 16  16  NA  16  b
2 20  NA  20  20  c
3 24  NA  NA  24  unknowwn

有谁知道如何解决这个问题?谢谢!

标签: rif-statement

解决方案


data$E <- ifelse(!is.na(data$B) & data$D == data$B, "b", 
            ifelse(!is.na(data$C) & data$D == data$C, "c", "unknowwn"))

推荐阅读