【问题标题】:How to subset a unigue value in a column from data.table to new data.table如何将列中的唯一值从 data.table 子集到新的 data.table
【发布时间】:2021-05-17 19:33:24
【问题描述】:

我有一个 data.table,我想根据 Counter 变量对其进行子集化并创建另一个 data.table。

伪代码是 从旧 data.table 中创建一个只有唯一 Subject 的新 data.table,其中 Counter 为 = 5

new_data <- old_data[Counter == 5, ]

但是每次计数器达到 5 时都会给我,我需要它只在第一次给我时才给我

Old data.table:
+---------------+------------+--------------+
| Date          | Subject    | Counter      | 
+---------------+------------+--------------+
| 10-21-20      |   a        |   0          |  
+---------------+------------+--------------+
| 10-22-20      |   a        |   1          |   
+---------------+------------+--------------+
| 10-23-20      |   a        |   2          |  
+---------------+------------+--------------+
| 10-21-20      |   b        |   0          |   
+---------------+------------+--------------+
| 10-26-20      |   b        |   5          |   
+---------------+------------+--------------+
| 11-2-20       |   b        |   5          | 
+---------------+------------+--------------+  
| 11-7-20       |   b        |   5          | 
+---------------+------------+--------------+ 

New data.table
+---------------+------------+--------------+
| 10-26-20      |   b        |   5          |   
+---------------+------------+--------------+

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    我们可以用unique 换行以获取第一行by '主题'

    library(data.table)
    unique(old_data[Counter == 5, ], by = c('Subject'))
    

    或者另一个选项是match,其中match返回匹配的第一行的索引并将其用于子集

    old_data[match(5, Counter)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 2014-01-08
      • 2019-04-17
      • 2011-07-26
      • 2021-12-05
      相关资源
      最近更新 更多