POSIXct没有显示HH:MM

时间:2013-07-20 19:43:40

标签: r posixct

我有一个文本文件,我使用read.files导入R:

DataFolder <- "unzipped"
LakeNames <- "Location1"
extension <- "txt"
# -- import data
data <- read.table(paste(DataFolder, LakeNames, paste(LakeNames, ".", extension, sep=""), sep="\\"),
                   header = TRUE, sep = "\t")  

这将数据读入

> head(data)
          dateTime dat
1 2009-03-01 00:00  0
2 2009-03-01 01:00  0
3 2009-03-01 02:00  0
4 2009-03-01 03:00  0
5 2009-03-01 04:00  0
6 2009-03-01 05:00  0

其中

> class(data$dateTime)
[1] "factor"

当我尝试将dateTime转换为POSIXct

> data$dateTime <- as.POSIXct(data$dateTime)
> head(data)
    dateTime dat
1 2009-03-01  0
2 2009-03-01  0
3 2009-03-01  0
4 2009-03-01  0
5 2009-03-01  0
6 2009-03-01  0

为什么我转换为POSIXct时没有显示dateTime的HH:MM部分?

2 个答案:

答案 0 :(得分:2)

我几天前发布了一个相关问题: Is there a specific way to handle timestamp columns in R when pulling data using RPostgreSQL?

你在哪个时区?

尝试运行

Sys.setenv(TZ='UTC') 

在阅读文件之前。

我无法在POSIXct数据上看到HH:MM数据。事实证明,如果数据中的日期时间值包括时钟向前移动1小时的时间点,则小时02:00的日期时间值无效,因为它应该被跳过。 POSIXct将其转换为绝对日期,没有HH:MM数据。由于向量中的所有数据都需要具有相同的格式,因此向量中的所有数据也会松散HH:MM部分。我希望有所帮助。

答案 1 :(得分:0)

如果指定colClasses,

read.table将使用as.POSIXct函数:

data <- read.table(paste(DataFolder, LakeNames, 
                    paste(LakeNames, ".", extension, sep=""), sep="\\"),
         header = TRUE, sep = "\t", colClasses=c("POSIXct","numeric")) 

它可能已经是一个POSIXct对象,只显示其日期。尝试:

format(data$dateTime, "%Y-%m-%d %H:%M:%S")