我想知道是否有可能每年获得每组第一行。
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]
该如何选择?
答案 0 :(得分:3)
尝试:
dt[, .SD[which.min(Year)], by = Group]
答案 1 :(得分:0)
直接使用dplyr,请尝试以下方法:
dt_min <- dt %>% group_by(Group) %>% summarise(new_year = min(Year))