【问题标题】:Daily select one hour of the day for analysis每天选择一天中的一小时进行分析
【发布时间】:2019-04-11 09:41:07
【问题描述】:

拥有 1 年的数据集 每小时记录

为了分析,我需要分别提取一年中的每个月、一天中的每个小时,所以 1 月 00 日、1 月 01 日、1 月 02 日、1 月 03 日、....、...、3 月 21 日、3 月22 小时,3 月 23 日

提前感谢您提供任何有用的帮助!

使用日期时间、过滤器、子集……选择一天中指定时间的观察值。

下面的代码(过滤器,月(时间)生成致命错误 错误:“at

groenenborgerno$timestamp <- as.POSIXct(groenenborgerno$date, format="%Y-%m-%d %H:%M:%S")
library(lubridate)

january01<-filter(atimeframe, 
       (month(time) == 01 & hour(time) == 01) )

【问题讨论】:

  • 看看format
  • 使用lubridate为每个月创建一个变量,为每个小时创建一个变量,然后你可以使用group_by()。如果您的示例是可重现的,将会回答。

标签: r date datetime


【解决方案1】:

由于没有提供数据,我将尝试用示例数据回答您的问题:

require(lubridate)
require(tidyverse)

## Create some sample data: 
time_index <- seq(from = as.POSIXct("2017-01-01 07:00"), 
                  to = as.POSIXct("2018-01-01 18:00"), by = "hour")
value <- rnorm(n = length(time_index))
data <- data.frame(time_index,value)


data <- data %>% mutate (hour = hour(time_index),
                         month = month(time_index)) %>%
  group_by(month,hour) 

head(data)
> data
# A tibble: 8,772 x 4
# Groups:   month, hour [288]
   time_index           value  hour month
   <dttm>               <dbl> <int> <dbl>
 1 2017-01-01 07:00:00 -0.626     7     1
 2 2017-01-01 08:00:00  0.184     8     1
 3 2017-01-01 09:00:00 -0.836     9     1
 4 2017-01-01 10:00:00  1.60     10     1
 5 2017-01-01 11:00:00  0.330    11     1
 6 2017-01-01 12:00:00 -0.820    12     1
 7 2017-01-01 13:00:00  0.487    13     1
 8 2017-01-01 14:00:00  0.738    14     1
 9 2017-01-01 15:00:00  0.576    15     1
10 2017-01-01 16:00:00 -0.305    16     1
# ... with 8,762 more rows

然后只需 filter() 您想要的小时/月组合:

data %>% filter(hour > 12 & month == 1)

# A tibble: 347 x 4
# Groups:   month, hour [11]
   time_index            value  hour month
   <dttm>                <dbl> <int> <dbl>
 1 2017-01-01 13:00:00  0.487     13     1
 2 2017-01-01 14:00:00  0.738     14     1
 3 2017-01-01 15:00:00  0.576     15     1
 4 2017-01-01 16:00:00 -0.305     16     1
 5 2017-01-01 17:00:00  1.51      17     1
 6 2017-01-01 18:00:00  0.390     18     1
 7 2017-01-01 19:00:00 -0.621     19     1
 8 2017-01-01 20:00:00 -2.21      20     1
 9 2017-01-01 21:00:00  1.12      21     1
10 2017-01-01 22:00:00 -0.0449    22     1
# ... with 337 more rows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2021-05-20
    • 2021-10-15
    • 1970-01-01
    • 2012-02-25
    • 2019-01-31
    相关资源
    最近更新 更多