首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R.各天特定时间的平均数据

R.各天特定时间的平均数据
EN

Stack Overflow用户
提问于 2021-05-13 14:41:12
回答 1查看 57关注 0票数 2
  • Update(2021/5/13,11:55 is ):数据是不可复制的。谢谢你对我的评论。

(这是我在Stackoverflow上的第一篇文章,所以请告诉我我在这个问题中是否犯了什么基本错误)

嗨,

我有一个每小时测量的数据,空气质量在数天的R,我想计算平均空气质量在特定的时间周期。

这是我的可复制数据的子集。它是xts格式的。

代码语言:javascript
运行
复制
# Make a structure of data
dput(Air_sample[1:6,1:1])

# Create a data from the structure above.
Air <- structure(
 c(2.6, 2, 2.2, 2.2, 1.6, 1.2),
 class = c("xts", "zoo"),
 index = structure(
  c(
   1078959600,
   1078963200,
   1079046000,
   1079049600,
   1079132400,
   1079136000
  ),
  tzone = "",
  tclass = c("POSIXct",
             "POSIXt")
 ),
 .Dim = c(6L, 1L),
 .Dimnames = list(NULL, c("True.CO")))

> Air
                    True.CO
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

我想计算特定时间的平均CO。下午6点)从多天开始。结果如下所示。

代码语言:javascript
运行
复制
Air_average <- data.frame("Time" = c("18:00","19:00"), "Average CO" = c(2.1333,1.8))

> Air_average
   Time Average.CO
1 18:00     2.1333
2 19:00     1.8000

我通过谷歌尝试了不同的功能,比如"period.apply“、”子集“、”窗口“等等,但似乎都没有用。

有办法这样做吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-13 16:27:04

您可以使用dplyr进行分组操作,使用lubridate处理日期。lubridate有只返回小时的hour函数。我首先将您的数据转换为数据框架:

代码语言:javascript
运行
复制
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

因为我的时区,时间和你的不一样,但是代码是一样的。

代码语言:javascript
运行
复制
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 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67521209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档