我将 csv 读入数据框,如下所示:
data <- read.csv("Prices.csv", stringsAsFactors = FALSE)
data$Timestamp <- as.POSIXct(data$Timestamp, format="%m/%d/%y %H:%M")
我尝试使用以下内容,但小时和分钟数据已被删除,这是我的问题。这如何与 as.Date 一起使用但保留所有信息?
data$Timestamp <- as.Date(data$Timestamp, format="%m/%d/%y %H:%M")
这就是 data$Timestamp 使用上面的 as.POSIXct 命令的样子,这很好:
head(data$Timestamp)
[1] "2013-11-01 09:31:00 EDT" "2013-11-01 09:32:00 EDT" "2013-11-01 09:34:00 EDT" "2013-11-01 09:35:00 EDT"
[5] "2013-11-01 09:36:00 EDT" "2013-11-01 09:37:00 EDT"
这是原始 csv 文件中的一些数据点:
Timestamp
11/1/13 9:31
11/1/13 9:32
11/1/13 9:34
11/1/13 9:35
11/1/13 9:36
11/1/13 9:37
谢谢。
最佳答案
您需要一个 Datetime 类,例如 POSIXct
(或扩展形式 POSIXlt
),而不是 Date。请参阅 help(DateTimeClasses)
。
说 Date
丢弃小时和分钟相当于说整数丢弃小数点后的部分——这就是重点。 [事实上,日期通常表示为整数,但这里也不同,因为它确实是小数天,但我离题了。 ]
简而言之,如果您没有当日信息,请使用 Date
。在所有其他情况下,请使用 POSIXct
。
关于r - as.Date 不保留 R 中的小时和分钟信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21396296/