我开始了解基本 R 如何处理日期/时间,但仍有一些不确定性。
as.character()
使用以下数据集(来自气象数据),我能够使用该函数转换为 POSIXct 和 POSIXlt 。Date.Time 以 yymmddhhmm 格式提供。
Date.Time <- c(1107151300, 1107151400, 1107151500, 1107151600, 1107151700, 1107151800)
WindSpd <- c(11.8, 14.5, 14.9, 14.1, 15.2, 17.1)
##Using as.character()##
#Note POSIXlt this time
w <- data.frame(Date.Time, WindSpd)
w$Date.Time <- as.POSIXlt(as.character(w$Date.Time), format = '%y%m%d%H%M',
origin = '2011-07-15 13:00:00')
w
#Now POSIXct
x <- data.frame(Date.Time, WindSpd)
x$Date.Time <- as.POSIXct(as.character(x$Date.Time), format = '%y%m%d%H%M',
origin = '2011-07-15 13:00:00')
x
但是,为了转换为日期而将整数转换为字符似乎很愚蠢。当我尝试直接转换整数时,我得到所有 NA 值。
##Trying to coerce the intergers##
#note POSIXlt this time
y <- data.frame(Date.Time, WindSpd)
y$Date.Time <- as.POSIXlt(y$Date.Time, format = '%y%m%d%H%M',
origin = '2011-07-15 13:00:00')
y
#note POSIXct this time
z <- data.frame(Date.Time, WindSpd)
z$Date.Time <- as.POSIXct(z$Date.Time, format = '%y%m%d%H%M',
origin = '2011-07-15 13:00:00')
z
显然这不是一个关键问题,因为我找到了一个可行的解决方案。无论如何,我想知道,因为我正在努力成为一个更好的 codeR。将整数转换为 R 日期类时我做错了什么?此外,它们的好处是否与POSIXlt
vs相关POSIXct
?根据帮助文章,听起来唯一的区别是它们的存储方式?