我在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")
这是使用上面的as.POSIXct命令的数据$ Timestamp看起来很好:
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
谢谢。
答案 0 :(得分:6)
您需要日期时间类,例如POSIXct
(或扩展形式POSIXlt
),而不是日期。请参阅help(DateTimeClasses)
。
说Date
丢弃小时和分钟相当于说整数丢弃小数点后的部分 - 这就是重点。 [事实上,日期通常表示为整数,但这也是不同的,因为它实际上是分数天,但我离题了。 ]
简而言之,如果您没有日内信息,请使用Date
。在所有其他情况下,请使用POSIXct
。