r - 计算不同时间段的平均值
问题描述
我的数据框(df)是:
Year Site1 Site2 Site3
2000 2 4 5
2001 2 5 45
2002 4 4 56
2003 23 67 45
2004 4 4 34
2005 3 56 34
2006 67 12 24
我想从某些时间窗口计算三个站点的平均值。期间将是:a)从 2000 年到 2006 年,b)从 2001 年到 2006 年,c)从 2002 年到 2006 年和 d)从 2000 年到 2004 年
我用于期间“a”的代码如下:
P <- cbind(df[,2:4]
mean_a <- aggregate(P ~ df[1:7,], mean)
我得到以下信息:
aggregate.data.frame(as.data.frame(x), ...) 中的错误:'by' 必须是一个列表
解决方案
像这样的东西?
> ix=list(2000:2006,2001:2006,2002:2006,2000:2004)
> lapply(ix,function(x){colMeans(subset(dat,Year%in%x,select=-c(Year)))})
[[1]]
Site1 Site2 Site3
15.00000 21.71429 34.71429
[[2]]
Site1 Site2 Site3
17.16667 24.66667 39.66667
[[3]]
Site1 Site2 Site3
20.2 28.6 38.6
[[4]]
Site1 Site2 Site3
7.0 16.8 37.0
推荐阅读
- github - 如何将具有完整历史记录的扩散存储库导入 github?
- coldfusion - Dateformat ww 返回错误的一年中的一周
- java - 如何在Android的另一个时区获取一天的开始时间和结束时间
- python - 要求输入。如果输入不是str,请再次询问
- python - 尝试从数据框中的行中删除停用词的属性错误
- python - 字典的 Python 特定值平均值
- cordova - 在cordova上复制额外的文件准备
- r - 在没有 fPortfolio 包的情况下建立 15 只股票的均值方差边界
- python - 需要删除 JSON 对象中的数组
- security - 如何在 Xamarin.Forms 中使用内部存储