结合dyplr标准代码?

时间:2017-01-24 22:28:09

标签: r dplyr extra

我的代码运行良好,但如何将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)

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分:0)

我们可以在没有filter

的情况下执行此操作
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对应于其他情况。