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)
4

2 回答 2

1

Conditionalmutate仍然是一项正在进行的工作dplyr但可以完成:

mtcars %>%
  mutate(x = case_when(.$cyl == 6 ~ 1)) %>% 
  mutate(y = case_when(.$am == 1 ~ 9)) %>% 
  mutate(z = case_when(is.na(.$x) ~ 5))
于 2017-01-25T02:07:58.610 回答
0

我们可以在没有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对应于条件和0其他情况的 TRUE 值。

于 2017-01-25T02:46:15.353 回答