如何获得每个小组的第一年信息?

时间:2019-02-28 10:32:58

标签: r data.table

我想知道是否有可能每年获得每组第一行。

library(data.table)
dt <- data.table(Group = c(rep("A", 4), rep("B", 3), rep("C", 3)), 
                 A = c(1:10), 
                 B = c(10:1), 
                 Year = c(2003:2006, 2004:2006, 2007, 2008, 2009))

数据如下

    Group  A  B Year
 1:     A  1 10 2003
 2:     A  2  9 2004
 3:     A  3  8 2005
 4:     A  4  7 2006
 5:     B  5  6 2004
 6:     B  6  5 2005
 7:     B  7  4 2006
 8:     C  8  3 2007
 9:     C  9  2 2008
10:     C 10  1 2009

但是我想得到的是每组最早的一年,但是我似乎做得不好:

dt[min(Year) == Year, by = Group]

该如何选择?

2 个答案:

答案 0 :(得分:3)

尝试:

dt[, .SD[which.min(Year)], by = Group]

答案 1 :(得分:0)

直接使用dplyr,请尝试以下方法:

dt_min <- dt %>% group_by(Group) %>% summarise(new_year = min(Year))