我有一个文本文件,我使用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部分?
答案 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)
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")