【问题标题】:Subset data by presence of multiple values in a single cell通过在单个单元格中存在多个值来子集数据
【发布时间】:2021-04-04 16:52:41
【问题描述】:

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

我有一个包含 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 等,但尽管它们选择了 ~001 行,但它们也删除了具有 ~001 和附加代码的条目,因此使用上面的示例数据,而不是以 4 行结束,我只以 2 行结束。

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

【问题讨论】:

    标签: r subset


    【解决方案1】:

    base Rgrepl 一起使用

    subset(df, grepl('001', D_CODE))
    

    【讨论】:

      【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-10
        • 2013-04-20
        • 1970-01-01
        • 2015-03-02
        • 1970-01-01
        • 1970-01-01
        • 2019-11-05
        相关资源
        最近更新 更多