【问题标题】:Convert tab delimited to XTS within R?在R中将制表符分隔为XTS?
【发布时间】:2012-08-24 19:46:16
【问题描述】:

我有以下格式的制表符分隔文件:

Date    Time    Last    LastSize    TotVol  Bid Ask TickID  BidSize AskSize
8/23/2012   0:00:00 0.95711 1   20670   0.95711 0.95742 0   0   0
8/23/2012   0:00:04 0.9571  1   20671   0.9571  0.9574  0   0   0

我正在使用该函数在 R 中创建 XTS。

> EURUSD <- as.xts(read.zoo("C:\\Users\\caustic\\Documents\\DTN\\IQFeed\\EURUSD.FXCM_1.txt",
+                           sep='\t', 
+                           tz='',   
+                           header=T,
+                           format='%d/%m/%Y %H:%M:%S'))

我收到以下错误: as.POSIXlt.character(x, tz, ...) 中的错误: 字符串不是标准的明确格式

问题是:如何将数据和时间组合成所需的 POSIX 格式? 谢谢

【问题讨论】:

  • ?read.zoo 有大量示例,可能包括如何执行此操作的示例。
  • zoo-read 小插图中还有其他示例。
  • 您的format arg 不起作用,因为日期和时间位于两个不同的列中。手册和小插图举例说明了如何组合来自两个不同列的日期/时间。
  • 所以我猜示例 4 是最好的?不过谢谢

标签: r tabs xts delimited


【解决方案1】:

由于 OP 并没有真正更新他的答案,我将添加一种方法来做到这一点。 要将制表符分隔(或 CSV)内容转换为 xts ,我更喜欢先将数据作为普通数据帧读取,然后使用 .xts 函数将 data.frame 转换为 xts

.xts 虽然目前是未记录的函数。

require(xts)
filecontent <- 'Date    Time    Last    LastSize    TotVol  Bid Ask TickID  BidSize AskSize
8/23/2012   0:00:00 0.95711 1   20670   0.95711 0.95742 0   0   0
8/23/2012   0:00:04 0.9571  1   20671   0.9571  0.9574  0   0   0'

DF <- read.table(text = filecontent, header = TRUE, stringsAsFactors = FALSE)

DFINDEX <- paste(DF$Date, DF$Time, sep = " ")

DF.XTS <- .xts(x = DF[, 3:10], index = as.POSIXct(DFINDEX, format = "%m/%d/%Y %H:%M:%S", tzone = "GMT"))

DF.XTS
##                        Last LastSize TotVol     Bid     Ask TickID BidSize AskSize
## 2012-08-23 08:00:00 0.95711        1  20670 0.95711 0.95742      0       0       0
## 2012-08-23 08:00:04 0.95710        1  20671 0.95710 0.95740      0       0       0

【讨论】:

    【解决方案2】:

    示例 4 在 cran.r-project.org/web/packages/zoo/vignettes/zoo-read.pdf 中有效 感谢 Joshua Ulrich 的帮助

    【讨论】:

    • 让我休息一下。向我们展示如何将您在问题中提供的示例数据放入 xts 对象中。
    猜你喜欢
    • 2021-07-21
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多