【问题标题】:Delete rows conditionally in data table有条件地删除数据表中的行
【发布时间】:2022-08-12 02:26:07
【问题描述】:

我有一个包含多个 customerID 的多行的大型数据集,如下所示。

DT|客户ID | V1| V2 | |:---------:|:---:|:------:| |一个| 24|逆转录| |一个| 56| ES| |B| 42| GS| |B| 43| XC| |B| 46| XZ| |C| 42|通用电气| |C| 25|西部数据| |D| 34| XZ| |D| 19|射频| |电子| 19|数据| |电子| 37| XS| |F| 44| ZS| |G| 23| AA|

我想删除具有某些客户 ID(例如 A、C、E)的行,使其看起来像这样:

DT|客户ID | V1| V2 | |:---------:|:---:|:------:| |B| 42| GS| |B| 43| XC| |B| 46| XZ| |D| 34| XZ| |D| 19|射频| |F| 44| ZS| |G| 23| AA|

我知道一种方法是使用以下方法:

dt1 <- dt[customerID != A & customerID != C & customerID != E]

但是,因为我的实际数据集包含多个客户 ID,所以我想找到一种更有效的方法。

我的目标是创建一个带有我要排除的 customerID 的向量,如下所示:

exclude <- c(A, C, E)

然后使用向量有条件地删除 customerID:

dt1 <- dt[customerID != exclude]

但是,当我在 R 中运行它时,表中没有任何变化。

任何援助将不胜感激。

    标签: r data.table data-cleaning delete-row


    【解决方案1】:

    我们可以使用%chin% 否定(!

    dt[!customerID %chin% exclude]
    

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 2013-01-10
      • 2016-12-02
      • 2020-10-29
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 2021-06-09
      相关资源
      最近更新 更多