【问题标题】:R subsetting a data.table by values of a character variableR通过字符变量的值对data.table进行子集
【发布时间】:2024-01-09 00:55:01
【问题描述】:

我正在尝试对 data.table 进行子集化,这里是小示例,但需要做更大的示例。

我有 dt 和唯一的列,code_id 是关键:

> UniqueCodes
                 code_id
    1:                  
    2:             .....
    3: 10073011000001107
    4: 10073911000001106
    5: 10075611000001101
   ---                  
15114:             x05ZX
15115:             x05q2
15116:             x05qb
15117:             x05td
15118:             x05xd

我有一长串要保留(子集)并丢弃其余代码的代码。那么我如何子集这个 df 并只保留 x05ZX、X05qb 和 X05td 呢?我知道这些是我唯一想保留的?谢谢,J。

【问题讨论】:

    标签: r data.table character subset


    【解决方案1】:
    library(data.table)
    
    code_id <- c(10073011000001107,
                 10073911000001106,
                 10075611000001101,
                 "x05ZX",
                 "x05q2",
                 "x05qb",
                 "x05td",
                 "x05xd",
                 "x05qb")
    
    UniqueCodes <- data.table(code_id)
    
    

    您可以使用要保留的代码构建向量

    codes <- c("x05ZX", "X05qb", "X05td", "x05qb")
    
    

    然后将向量传递给dt

    UniqueCodes[code_id %in% codes]
    ##  code_id
    ## 1:   x05ZX
    ## 2:   x05qb
    ## 3:   x05qb
    

    【讨论】:

    • 谢谢 Jose,我差点搞定了,由于某种原因,顺序调换了……也许像 SQL 语法!
    最近更新 更多