R 聚合()与日期

数据挖掘 r 数据集 初学者
2021-10-09 04:58:40

我正在研究一个每天有多个交通速度测量值的数据集。我的数据来自芝加哥市,大约每分钟采集一次,持续大约六个月。我只想将这些数据合并到几天内,所以这就是我所做的:

traffic <- read.csv("path.csv",header=TRUE)
traffic2 <- aggregate(SPEED~DATE, data=traffic, FUN=MEAN)

这是完美的,因为它获取了我所有的数据并按日期平均。例如,我的原始数据如下所示:

DATE        SPEED  
12/31/2012   22
12/31/2012   25
12/31/2012   23
...

决赛看起来像这样:

DATE        SPEED 
10/1/2012    22
10/2/2012    23
10/3/2012    22
...

唯一的问题是我的数据应该从 2012 年 9 月 1 日开始。我绘制了这些数据,结果数据从 10/1/2012-12/31/2012 到 9/1/2012-9/30/2012。

这里到底发生了什么?

1个回答

我同意@user1683454 的评论。导入后,您的 DATE 列是characterfactor类(取决于您的设置stringsAsFactors)。因此,我认为您至少可以通过以下几种方式解决此问题,如下所示:

1)在导入期间将数据转换为正确的类型为此,只需使用以下选项:()和默认情况下,您可以指定转换为类。如果您需要非标准格式,您有两种选择。首先,如果您有一个 Date 列,则可以使用将所需格式传递给. 其次,如果您有多个 Date 列,您可以为此编写一个函数并将其传递给via 这两个选项都在这里讨论:https ://stackoverflow.com/questions/13022299/specify-date-format-for-colclasses-argument-in-read-table-read-csv 。read.csv()stringsAsFactorsas.iscolClassesDatePOSIXctas.Date.character()colClassescolClassessetAs()

2)导入后将数据转换为正确的格式因此,在调用之后,您必须执行以下代码:(将格式调整为您需要的任何日期格式)。read.csv()dateColumn <- as.Date(dateColumn, "%m/%d/%Y")dateColumn <- strptime(dateColumn, "%m/%d/%Y")