通过单个单元格中存在多个值来对数据进行子集化

Subset data by presence of multiple values in a single cell

这是一个令人尴尬的简单问题,但我真的被卡住了,none 的其他线程似乎解决了这个问题。

我有一个包含 20,000 多行的数据集,其中一列包含多个代码,用于解释个人符合的人口统计标准。

数据:

ORGNAME D_CODE
A ~001, ~002
A ~001
B ~003, ~004
B ~001, ~005
B ~002, ~004
C ~001

我想对数据进行子集化,由此我只保留包含 ~001 的行,但我希望这包括还包含其他值的行(即具有 ~001 和 ~002 的第 1 行)。

我曾尝试使用 %>%filtersubset 等,但尽管它们 select ~001 行,但它们也删除了具有 ~001 和额外的代码,所以使用上面的示例数据,我最终没有得到 4 行,而是只有 2 行。

有什么解决办法吗?非常感谢!

这个有用吗:

library(dplyr)
library(stringr)
df %>% filter(str_detect(D_CODE, '001'))
  ORGNAME     D_CODE
1       A ~001, ~002
2       A       ~001
3       B ~001, ~005
4       C       ~001

Data used:

df
  ORGNAME     D_CODE
1       A ~001, ~002
2       A       ~001
3       B ~003, ~004
4       B ~001, ~005
5       B ~002, ~004
6       C       ~001

base Rgrepl

结合使用
subset(df, grepl('001', D_CODE))