我有以下按监测地点和采样年份组织的水化学化合物年度平均值数据集(32000个条目),示例如下:
data= data.frame(Site_ID=c(1, 1, 1, 2, 2, 2, 3, 3, 3), Year=c(1976, 1977, 1978, 2004, 2005, 2006, 2003, 2004, 2005), AnnualMean=c(1.1, 1.2, 1.1, 2.1, 2.6, 3.1, 2.7, 2.6, 1.9))
我只想从所有的监测站点中选择在year1和year2之间至少有n次测量的数据?通常,我想从监视站点中选择所有数据,这些站点显示1990年至2005年之间的10个测量值。
data %>%
group_by(Site_ID) %>%
filter(n()>=n %in% between(Year, year1, year2))
这将选择Site_ID
至少包含和parms['n']
之间的观察值的所有组。parms['yr1']
parms['yr2']
library(data.table)
setDT(df)
parms <- c(n = 2, yr1 = 2000, yr2 = 2005)
df[, if(sum(Year %between% parms[c('yr1', 'yr2')]) >= parms['n']) .SD,
by = Site_ID]
# Site_ID Year AnnualMean
# 1: 2 2004 2.1
# 2: 2 2005 2.6
# 3: 2 2006 3.1
# 4: 3 2003 2.7
# 5: 3 2004 2.6
# 6: 3 2005 1.9
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句