结合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))
我们可以在没有 filter
ing
的情况下做到这一点
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
对应于其他情况。
我有这段代码运行良好,但我如何将 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))
我们可以在没有 filter
ing
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
对应于其他情况。