在R中按时间和组获取第一个唯一值

在R中按时间和组获取第一个唯一值,r,data.table,R,Data.table,我有一个数据表,我想根据一些条件提取其中的一个子集-基本上,我希望有一个子集,使得每个组的每个日期和时间都是唯一的,同时也获取每次出现的第一个值。例如,假设我有一个如下所示的数据表: Group | Time | Value ------------------------------------ a | 2010-07-13 20:00:00 | 1 a | 2010-07-13 20:00:00 | 2 a | 2010-07-13 20

我有一个数据表,我想根据一些条件提取其中的一个子集-基本上,我希望有一个子集,使得每个组的每个日期和时间都是唯一的,同时也获取每次出现的第一个值。例如,假设我有一个如下所示的数据表:

Group |           Time      | Value
------------------------------------
a     | 2010-07-13 20:00:00 | 1
a     | 2010-07-13 20:00:00 | 2
a     | 2010-07-13 20:00:01 | 3
a     | 2010-07-13 20:00:02 | 4
a     | 2010-07-14 20:00:00 | 5
a     | 2010-07-14 20:00:01 | 6
b     | 2010-07-13 20:00:00 | 7
b     | 2010-07-13 20:00:00 | 8
b     | 2010-07-13 20:00:01 | 9
b     | 2010-07-14 20:00:00 | 10
Group |      Time           |  Value
-------------------------------------   
a     | 2010-07-13 20:00:00 | 1
a     | 2010-07-13 20:00:01 | 3
a     | 2010-07-13 20:00:02 | 4
a     | 2010-07-14 20:00:00 | 5
a     | 2010-07-14 20:00:01 | 6
b     | 2010-07-13 20:00:00 | 7
b     | 2010-07-13 20:00:01 | 9
b     | 2010-07-14 20:00:00 | 10
如果我根据上面提到的条件对该数据表进行子集划分,它现在应该如下所示:

Group |           Time      | Value
------------------------------------
a     | 2010-07-13 20:00:00 | 1
a     | 2010-07-13 20:00:00 | 2
a     | 2010-07-13 20:00:01 | 3
a     | 2010-07-13 20:00:02 | 4
a     | 2010-07-14 20:00:00 | 5
a     | 2010-07-14 20:00:01 | 6
b     | 2010-07-13 20:00:00 | 7
b     | 2010-07-13 20:00:00 | 8
b     | 2010-07-13 20:00:01 | 9
b     | 2010-07-14 20:00:00 | 10
Group |      Time           |  Value
-------------------------------------   
a     | 2010-07-13 20:00:00 | 1
a     | 2010-07-13 20:00:01 | 3
a     | 2010-07-13 20:00:02 | 4
a     | 2010-07-14 20:00:00 | 5
a     | 2010-07-14 20:00:01 | 6
b     | 2010-07-13 20:00:00 | 7
b     | 2010-07-13 20:00:01 | 9
b     | 2010-07-14 20:00:00 | 10
我真的不太确定该怎么做,所以如果有人能帮助我,我会非常感激,谢谢!我还附加了下面的代码来生成第一个数据表


cc try
dt[,.SD[1],(组,时间)]
dt[dt[,.I[1],(组,时间)]$V1]
谢谢!我还有一个问题,比如说,数据表中有一个第四列,叫做“Item”,我不想包含在新的子集中,有没有办法指定我不想要第四列,我只想要“Group”、“Time”和“Value”列?你可以在步骤后进行子集设置,即
dt[,.SD[1]。(组,时间)][,1:3:,with=FALSE]
或从列的子集开始,即
dt[,1:3,with=FALSE][,.SD[1],(组,时间)]