结合dyplr标准代码?

combine dyplr criteria code?

我有这段代码运行良好,但我如何将 3 行代码合并为 1 行代码?

基本上我需要创建这些额外的帮助 QC 列,我还将它从其他 SAS 代码(其他人拥有的)翻译成 R,目标只是翻译它,而不是质疑它。

目标是在满足条件时,在数据集末尾附加 3 个额外的列 N、C 和 K。

TEST <- FINAL %>% filter(is.na(NAME)) %>% mutate(N = 1)

TEST <- FINAL %>% filter(is.na(COUNTRY)) %>% mutate(C = 1)

TEST <- FINAL %>% filter( CATEGORY == 'T' & (BEGN_DT <= 20170302 & END_DT >= 20170312) ) %>% mutate(K = 1)

有条件的mutate对于dplyr还是a work-in-progress,但是可以做到:

mtcars %>%
  mutate(x = case_when(.$cyl == 6 ~ 1)) %>% 
  mutate(y = case_when(.$am == 1 ~ 9)) %>% 
  mutate(z = case_when(is.na(.$x) ~ 5))

我们可以在没有 filtering

的情况下做到这一点
FINAL %>% 
     mutate(N = as.integer(is.na(NAME)),
            C = as.integer(is.na(COUNTRY)),
            K = as.integer(CATEGORY == 'T' & (BEGN_DT <= 20170302 & END_DT >= 20170312)))

它会生成二进制列,其中 1 对应于条件的 TRUE 值,而 0 对应于其他情况。