动物园并按城镇申请变量的季节性平均值

zoo and tapply for seasonal mean for variables by town

wood 是我的数据框

town    date   prec        TP      TC
TR  1/10/1983   NaN       NaN   11.34
CR  2/12/1983   NaN       NaN    4.3
TR  3/12/1983   11.22   11.36    NAN
SP  5/6/1985    NaN       NaN    3.2
BM  6/7/1994    6.33     6.23    1.2
BM  5/6/1995    5.81      5.9    NAN
BM  1/11/2005   5.9       5.9    6.2

我想分别获取每个城镇数据的季节性平均值(平均值)。过去,我使用动物园函数来查找 prec 每年的季节性平均值。但是动物园很难接受城镇的另一个变数。 现在我想扩展它以找到每年按城镇“prec、TP、TC”的季节性平均值 因此对于 1983 年 1 月 2 月 3 月平均值和

1985 年 5 月、6 月、7 月的平均值

输出应该是这样的。还有“R 不应将 NAN 视为零”。那只是缺少数据。

town  date     prec    TP     TC
TR    1983    11.22 11.36   7.82
SP    1985     6.07  6.07   2.2
library(data.table)
library(lubridate)    
setDT(dat)
dat[ , .(prec = mean(prec, na.rm = T), TP = mean(TP, na.rm = T), TC = mean(TC, na.rm = T))., by = .(town, year(date))]