在R中计算特定时间内各天的平均数据 更新(2021/5/1311:55):数据不可复制。谢谢@G.Grothendieck给我的评论
(这是我在Stackoverflow的第一篇文章,所以如果我在这个问题上犯了一些基本错误,请告诉我) 嗨 我有一个R中多天的每小时空气质量测量数据,我想计算特定时间段的平均空气质量 这是我的可复制数据的子集。它是xts格式的在R中计算特定时间内各天的平均数据 更新(2021/5/1311:55):数据不可复制。谢谢@G.Grothendieck给我的评论,r,time-series,average,xts,R,Time Series,Average,Xts,(这是我在Stackoverflow的第一篇文章,所以如果我在这个问题上犯了一些基本错误,请告诉我) 嗨 我有一个R中多天的每小时空气质量测量数据,我想计算特定时间段的平均空气质量 这是我的可复制数据的子集。它是xts格式的 #创建数据结构 dput(空气样品[1:6,1:1]) #从上面的结构创建一个数据。 空气 特鲁尔公司 2004-03-10 18:00:00 2.6 2004-03-10 19:00:00 2.0 2004-03-11 18:00:00 2.2 2
#创建数据结构
dput(空气样品[1:6,1:1])
#从上面的结构创建一个数据。
空气
特鲁尔公司
2004-03-10 18:00:00 2.6
2004-03-10 19:00:00 2.0
2004-03-11 18:00:00 2.2
2004-03-11 19:00:00 2.2
2004-03-12 18:00:00 1.6
2004-03-12 19:00:00 1.2
我想计算几天中特定时间(例如下午6点)的平均CO。
因此,结果如下所示
Air\u average Air\u average
时间平均公司
1 18:00 2.1333
2 19:00 1.8000
我通过谷歌搜索尝试了不同的功能,如“period.apply”、“subset”、“window”等,但似乎都不起作用
有没有办法做到这一点
谢谢。您可以使用类似于
dplyr
的方法来执行分组操作,也可以使用lubridate
来处理日期lubridate
具有仅返回小时数的hour
功能。
我首先将数据转换为数据帧:
library(lubridate)
library(dplyr)
library(xts)
Air <- data.frame(Air) %>%
add_rownames(var = "time")
time True.CO
<chr> <dbl>
1 2004-03-11 00:00:00 2.6
2 2004-03-11 01:00:00 2
3 2004-03-12 00:00:00 2.2
4 2004-03-12 01:00:00 2.2
5 2004-03-13 00:00:00 1.6
6 2004-03-13 01:00:00 1.2
库(lubridate)
图书馆(dplyr)
图书馆(xts)
空气%
添加行名(var=“time”)
时代真公司
1 2004-03-11 00:00:00 2.6
2 2004-03-11 01:00:00 2
3 2004-03-12 00:00:00 2.2
4 2004-03-12 01:00:00 2.2
5 2004-03-13 00:00:00 1.6
6 2004-03-13 01:00:00 1.2
因为我的时区,时间和你的不一样,但是代码是一样的
Air %>%
group_by(hour(time))%>%
summarise(mean(True.CO))
# A tibble: 2 x 2
`hour(time)` `mean(True.CO)`
<int> <dbl>
1 0 2.13
2 1 1.8
Air%>%
分组依据(小时(时间))%>%
总结(平均值(True.CO))
#一个tibble:2x2
`小时(time)`mean(True.CO)`
1 0 2.13
2 1 1.8
请显示示例的确切输入和相应的输出。不要使用圆点。还应按照标签页顶部的要求使用dput,以可复制的形式显示数据,并确保输出与输入完全一致。你想要什么也一点也不清楚。问题是您想要6:00的平均值,但输出显示其他时间。@G.Grothendieck感谢您的评论。我正在阅读关于如何使用dput在这里正确发布的帖子和视频。我会很快更新这篇文章。大概aggregate
会完成这项工作。但是我记不起语法了。@Jeremy谢谢你。我试过聚合,不知怎么找到了一种方法。非常感谢@denis!成功了,没有pb。有很多选项可以执行分组操作:tapply
在base R中,您还可以查看数据表
,它非常强大。但是到目前为止,dplyr
是使用最多的