【问题标题】:Converting Data Frame to Zoo. Trouble with Posixlt将数据框转换为动物园。 Poixlt 的问题
【发布时间】:2014-04-12 01:55:29
【问题描述】:

我正在尝试将数据框转换为动物园对象并且遇到了很多麻烦。无论我在 read.zoo 调用中做什么,我都会收到以下错误。我认为甚至没有必要列出时间戳的格式,因为它已经是 Posixlt 但事实并非如此。

你能指出我正确的方向吗?

Error in as.POSIXlt.character(x, tz, ...) : 
  character string is not in a standard unambiguous format

这是数据样本,

                   Date   Open   High    Low  Close
330 2014-01-03 15:00:00 544.95 545.10 544.80 544.86
331 2014-01-03 15:01:00 544.80 544.89 544.77 544.79
332 2014-01-03 15:02:00 544.84 544.90 544.79 544.80
333 2014-01-03 15:03:00 544.80 544.80 544.60 544.69
334 2014-01-03 15:04:00 544.75 544.80 544.66 544.75
335 2014-01-03 15:05:00 544.78 545.03 544.76 545.01

这是可重现的代码:

require (zoo)

data <- structure(list(Date = structure(list(sec = c(0, 0, 0, 0, 0, 0
), min = 0:5, hour = c(15L, 15L, 15L, 15L, 15L, 15L), mday = c(3L, 
3L, 3L, 3L, 3L, 3L), mon = c(0L, 0L, 0L, 0L, 0L, 0L), year = c(114L, 
114L, 114L, 114L, 114L, 114L), wday = c(5L, 5L, 5L, 5L, 5L, 5L
), yday = c(2L, 2L, 2L, 2L, 2L, 2L), isdst = c(0L, 0L, 0L, 0L, 
0L, 0L)), .Names = c("sec", "min", "hour", "mday", "mon", "year", 
"wday", "yday", "isdst"), class = c("POSIXlt", "POSIXt")), Open = c(544.95, 
544.8, 544.84, 544.8, 544.75, 544.78), High = c(545.1, 544.89, 
544.9, 544.8, 544.8, 545.03), Low = c(544.8, 544.77, 544.79, 
544.6, 544.66, 544.76), Close = c(544.86, 544.79, 544.8, 544.69, 
544.75, 545.01)), .Names = c("Date", "Open", "High", "Low", "Close"
), row.names = 330:335, class = "data.frame")

data <- read.zoo(data, header = TRUE, index = 1, tz="", format = "%Y-%m-%d %H:%M:%S")

【问题讨论】:

    标签: r dataframe zoo


    【解决方案1】:

    假设在您的data &lt;- structure(… 之后立即调用以下内容

    read.zoo( transform( data, Date = as.POSIXct(Date) ), FUN = identity )
    

    它应该让你朝着正确的方向前进。 ?read.zoo 应该有助于理解它的作用。

    【讨论】:

    • 不幸的是,read.zoo 的当前限制是它不处理 POSIXlt 索引输入,但上述答案,首先将其转换为 POSIXct,似乎是一个好方法。另一种方法是先将其转换为字符:read.zoo( transform(data, Date = format(Date)), tz = "" ),
    • 谢谢你们两位的cmets。它现在使用 hrbrmstr 的代码工作。我还没有准备好让它忽略原生 R 日期格式,并且它没有在文档中公然说明。我认为将格式放入 read.zoo 调用就足够了。我会牢记这一点。
    • Achim 刚刚在开发版本中修复了它(现在可以通过 subversion 获得,最终将在 CRAN 上获得)所以修复它可以工作:read.zoo(data)
    猜你喜欢
    • 2017-02-28
    • 2014-07-22
    • 2014-01-19
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多