2

I have a text file that I import into R with read.files:

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

This reads in the data as

> 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

where

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

when I try to convert the dateTime into 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

Why is this not showing the HH:MM part of the dateTime when I convert to POSIXct?

4

2 回答 2

3

几天前我发布了一个相关问题: 在使用 RPostgreSQL 提取数据时,是否有特定的方法来处理 R 中的时间戳列?

你在哪个时区?

尝试运行

Sys.setenv(TZ='UTC') 

在阅读文件之前。

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

于 2013-07-25T18:30:53.930 回答
0

read.table如果您指定 colClasses,将使用 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")
于 2013-07-20T19:55:27.287 回答