如何将复杂的日期/时间字符串解析为zoo对象?

Pro*_*091 1 r zoo

我正在尝试将以下日期/时间字符串转换为zoo对象:

2004:071:15:23:41.87250

2004:103:15:24:15.35931

同期:DOY:小时:分钟:秒

日期/时间字符串存储在没有标题的数据框中.R中最好的方法是什么?

干杯!

根据Gavin的回答编辑:

# read in time series from CSV file; each entry as described above
timeSeriesDates <- read.csv("timeseriesdates.csv", header = FALSE, sep = ",")
# convert to format that can be used as a zoo object
timeSeriesDatesZ <- as.POSIXct(timeSeriesDates$V1, format = "%Y:%j:%H:%M:%S")
Run Code Online (Sandbox Code Playgroud)

Rei*_*son 7

以通常的方式读取R中的数据.您将拥有以下内容:

dats <- data.frame(times = c("2004:071:15:23:41.87250", "2004:103:15:24:15.35931"))
dats
Run Code Online (Sandbox Code Playgroud)

这些可以通过以下方式转换为其中一个POSIXt类:

dats <- transform(dats, as.POSIXct(times, format = "%Y:%j:%H:%M:%S"))
Run Code Online (Sandbox Code Playgroud)

要么

data$times <- as.POSIXct(dats$times, format = "%Y:%j:%H:%M:%S"))
Run Code Online (Sandbox Code Playgroud)

然后可以在动物园对象中使用它.有关参数中?strftime使用的占位符的详细信息,请参阅format; 基本上%j是一年中的占位符.

为了做动物园比特,我们会做,使用一些虚拟数据作为实际的时间序列

ts <- rnorm(2) ## dummy data
require(zoo)   ## load zoo
tsZoo <- zoo(ts, dats$times)
Run Code Online (Sandbox Code Playgroud)

最后一行给出:

> tsZoo
2004:071:15:23:41.87250 2004:103:15:24:15.35931 
              0.3503648              -0.2336064
Run Code Online (Sandbox Code Playgroud)

小数秒需要注意的一点是,i)使用浮点运算可能无法记录您的确切分数.此外,给定R中选项的值,R可能不会显示完整的小数秒; digits.secs.有关?options此特定选项以及如何更改它的更多信息,请参阅.