【问题标题】:R Time Series with Date Frequency具有日期频率的 R 时间序列
【发布时间】:2018-08-05 07:17:48
【问题描述】:

我正在尝试使用来自 csv 文件的数据创建一个时间序列图,其格式如下表所示。

Date                   Crime
2015-12-17 07:26:00    Vandalism
2015-12-17 11:04:00    Theft 
2015-06-18 12:32:00    Murder
.
.
.

我想显示一年中每天所有犯罪的频率。我还希望能够显示每种犯罪类型的频率。我对 R 有点陌生,所以我想知道最有效的方法是什么?

【问题讨论】:

    标签: r csv time-series


    【解决方案1】:

    我假设您的数据框是纯文本,因为您是从 csv 文件中读取它的。您可以使用dput 命令与我们分享。这是我之前准备的:

    df = structure(list(
        Date = c("2015-12-17 07:26:00", "2015-12-17 11:04:00", "2015-06-18 12:32:00"), 
        Crime = structure(c(3L, 2L, 1L), .Label = c("Murder", "Theft", "Vandalism"), class = "factor")), 
        class = "data.frame", row.names = c(NA, -3L), .Names = c("Date", "Crime"))
    

    您可以使用lubridateymd_hms 命令将Date 列转换为实际日期:

    library(lubridate)
    df$Date = ymd_hms(df$Date)
    

    然后你可以将 Date-Time 构造转换为纯日:

    df$Date = as.Date(df$Date)
    

    现在您可以按常规方式通过DateCrime 进行聚合。这是dplyr的方式:

    library(dplyr)
    df %>% group_by(Date, Crime) %>% summarise(count = n())
    

    输出:

    # A tibble: 3 x 3
    # Groups:   Date [?]
            Date     Crime count
          <date>    <fctr> <int>
    1 2015-06-18    Murder     1
    2 2015-12-17     Theft     1
    3 2015-12-17 Vandalism     1
    

    【讨论】:

      猜你喜欢
      • 2021-03-29
      • 2021-04-02
      • 2021-04-02
      • 2021-06-20
      • 2021-12-05
      • 2017-05-28
      • 2021-05-12
      • 1970-01-01
      • 2013-02-12
      相关资源
      最近更新 更多