创建具有三次特征的变量

时间:2020-07-10 21:54:33

标签: r

我想创建一个具有三种特征的变量“ WKA”:0,1和2。

WKA should be 0 if WKA_ohneJB[, "QUANTITY"]>=1 && WKA_ohneJB[, "WKA"]==0,
WKA should be 1 if WKA_ohneJB[, "QUANTITY"]>=1 && WKA_ohneJB[, "WKA"]>=1,
WKA should be 2 if WKA_ohneJB[, "QUANTITY"]==0 && WKA_ohneJB[, "WKA"]==0

如何在R中实现呢?

1 个答案:

答案 0 :(得分:2)

代替if/else&&,我们可以将ifelse&一起使用,因为ifelse是矢量化的

WKA_ohneJB$newWKA <- with(WKA_ohneJB, ifelse(QUANTITY >=1 & WKA == 0, 0,
                  ifelse(QUANTITY >=1 & WKA >=1, 1, 2)))

或与case_when

library(dplyr)
WKA_ohneJB <- WKA_ohneJB %>%
                mutate(newWKA = case_when(QUANTITY >= 1 & WKA== 0 ~ 0L,
                  QUANTITY >=1 & WKA >=1 ~ 1L,
                  QUANTITY == 0 & WKA == 0 ~ 2L, 
                    TRUE ~ NA_integer_))