如何在 R 中将时间戳从字符更改为日期时间并添加缺少的时间戳
How to change a timestamp from character to datetime in R and add missing timestamps
我有一个包含不同列的数据框。
一列称为“TIMESTAMP”。点击栏目,我看到是一个字符,往下看内容:
TIMESTAMP Price
2003-06-20 09:19:00 5.25
2003-06-20 09:21:00 5.34
2003-06-20 09:22:00 5.43
2003-06-20 09:23:00 5.32
我想将完整的“TIMESTAMP”列转换为 as.POSIXct
这样做的原因是,我想随后在列中添加缺失的分钟数,正如您从第 1 行到第 2 行看到的,09:20:00
缺少时间戳。我想将 09:00:00
缺失的分钟数添加到 17:30:00
,当然还有正确的日期。
让我们调用数据框data
。
我尝试了 as.POSIXct(data$TIMESTAMP, format="%Y-%m-%d %H:%M:%S")
,但我不确定它是否成功,因为数据框中的数据没有改变。
是否还有提示如何在获得正确格式后添加缺少的时间戳?
感谢您的帮助!
只要将结果分配回数据框的列,您的尝试就是正确的。这是你应该做的:
> data$TIMESTAMP <- as.POSIXct(data$TIMESTAMP, format="%Y-%m-%d %H:%M:%S")
之后,TIMESTAMP
列将具有所需的 class:
> class(data$TIMESTAMP)
[1] "POSIXct" "POSIXt"
为了完成缺少行的数据框,您可以先构建一个包含所有预期时间的新 data.frame
,然后将其合并到您的初始数据中。下面我使用 min
和 max
来查找日期时间范围,然后我使用 seq.POSIXt
按分钟生成完整的日期时间集。然后合并将使用初始数据框中已有的价格值:
> data_full <- data.frame(TIMESTAMP = seq.POSIXt(from=min(data$TIMESTAMP), to=max(data$TIMESTAMP), by='min'))
> data_complete <- merge(data_full, data, all.x = T)
我有一个包含不同列的数据框。 一列称为“TIMESTAMP”。点击栏目,我看到是一个字符,往下看内容:
TIMESTAMP Price
2003-06-20 09:19:00 5.25
2003-06-20 09:21:00 5.34
2003-06-20 09:22:00 5.43
2003-06-20 09:23:00 5.32
我想将完整的“TIMESTAMP”列转换为 as.POSIXct
这样做的原因是,我想随后在列中添加缺失的分钟数,正如您从第 1 行到第 2 行看到的,09:20:00
缺少时间戳。我想将 09:00:00
缺失的分钟数添加到 17:30:00
,当然还有正确的日期。
让我们调用数据框data
。
我尝试了 as.POSIXct(data$TIMESTAMP, format="%Y-%m-%d %H:%M:%S")
,但我不确定它是否成功,因为数据框中的数据没有改变。
是否还有提示如何在获得正确格式后添加缺少的时间戳?
感谢您的帮助!
只要将结果分配回数据框的列,您的尝试就是正确的。这是你应该做的:
> data$TIMESTAMP <- as.POSIXct(data$TIMESTAMP, format="%Y-%m-%d %H:%M:%S")
之后,TIMESTAMP
列将具有所需的 class:
> class(data$TIMESTAMP)
[1] "POSIXct" "POSIXt"
为了完成缺少行的数据框,您可以先构建一个包含所有预期时间的新 data.frame
,然后将其合并到您的初始数据中。下面我使用 min
和 max
来查找日期时间范围,然后我使用 seq.POSIXt
按分钟生成完整的日期时间集。然后合并将使用初始数据框中已有的价格值:
> data_full <- data.frame(TIMESTAMP = seq.POSIXt(from=min(data$TIMESTAMP), to=max(data$TIMESTAMP), by='min'))
> data_complete <- merge(data_full, data, all.x = T)