【发布时间】:2021-09-14 16:55:45
【问题描述】:
我有一个数据集,我试图在其中标记具有所有值类别的成员。我想将具有这些值的成员标记为 1(必须具有以 99 开头的值,必须具有以 77[1-9] 开头的值,并且具有 77014 或 G6 或以 T 结尾的值)
我根据原始数据创建了一个包含我感兴趣的所有值的向量:
vec <- rad %>% select(proc1) %>% filter(str_detect(proc1, '^77[1-9]|^77014|^G6|^99|T$'))
vec1 <- vec %>% distinct(proc1)
然后这样做:
rad[, new := +(proc1 %in% vec1$proc1), by = enrolid]
但是有没有一种方法,而不是将其中任何一个值和标签设为 1 是可选的,它只分配一个 1 如果成员具有所有必需的值?
示例数据:
structure(list(enrolid = c("1005501701", "1005501701", "1005569804",
"1005578501", "1005613901", "1005613901", "1005613901", "1005618402",
"1005618402", "1005623302", "1005623302", "1005623302", "1005623302",
"1005623302", "1005623302", "1005623302", "1005623302", "1005623302",
"1005623302", "1005623302", "1005623302"), proc1 = c("99211",
"99213", "99213", "99214", "99213", "99214", "99214", "99214",
"99214", "99213", "99213", "99214", "99214", "77263", "77280",
"77412", "77427", "77412", "99214", "99204", "99214")), class = c("data.table",
"data.frame"), row.names = c(NA, -21L), .internal.selfref = <pointer: 0x00000260f6181ef0>)
【问题讨论】:
-
当我尝试为您的示例数据运行代码时出现错误。
-
@rjen 它可以工作,如果您在复制/粘贴时从
.internal...pointer` 中删除该部分 -
@akrun:确实。
-
@akrun:我没有发布问题。但也许我缺少一些东西。
-
对不起,我在评论之前没想到
标签: r regex data.table tidyverse