dplyr解决方案:
data %>% group_by(STATION) %>% summarize(years = list(unique(YEAR))) %>% as.data.frame
结果:
STATION years
1 A 2002, 2009, 2015
2 B 1996, 1999, 2003, 2007, 2013
3 C 2000, 2002, 2005, 2006, 2009, 2010, 2014
4 D 2003, 2005, 2010, 2014
5 E 1997, 2005
6 F 1996, 1997, 1998, 2001, 2014, 2015
7 G 1996, 2001
8 H 1995, 1997, 2003
9 I 1996, 1997, 2008
10 J 1999, 2001, 2009
11 K 2003, 2004, 2010, 2011, 2012
12 L 2002, 2004, 2011, 2015
请注意,Xapply循环实际上并没有“矢量化”,它们只是普通R函数调用迭代的包装器。(此dplyr解决方案也没有“矢量化”)。
最好不要为寻找最理想的解决方案而烦恼,而是寻找最感性的解决方案。