-4

我正在尝试使用命令将对象保存到文本文件中write.table(ESH2, "c:/ESH2.txt", sep=",")。问题是保存的时间序列不包含我下载的日期和时间值。我使用包twsInstrument和命令getBAT(ESH2)

使用命令将其加载到 R 中时的数据load(file = "C:/ESH2.Rdata")

               ES.Bid.Price ES.Ask.Price ES.Trade.Price ES.Mid.Price ES.Volume
1323700200        1237.25        1237.50        1237.50     1237.375      6954
1324057980        1210.25        1210.50        1210.25     1210.375      3792
1324058040        1210.50        1211.00        1211.00     1210.750      3305
.........
.........
.........
1324058100           NA           NA             NA           NA         823

attr(,".indexCLASS")
[1] POSIXct POSIXt 
attr(,".indexTZ")
[1] 
attr(,"from")
[1] 20111211  23:59:59
attr(,"to")
[1] 20111216  23:59:59
attr(,"src")
[1] IB
attr(,"updated")
[1] "2011-12-16 18:54:55 CET"

第一列应显示Date_Time而不是 1323700200。

我正在寻找一种简单的方法来每周下载一次数据并合并数据。

ps 是的,我可以通读教程/书籍来完成这一点,是的,我会这样做,但问题是我没有时间。我想在这周开始收集数据,因为交互式经纪人正在限制数据请求1min data = 5DAYS maximum。我很感谢任何帮助和建议。

4

2 回答 2

5

您可能有一个 xts 或 zoo 对象并且需要使用该write.zoo函数。如果我对“ESH2”对象的结构是正确的,那么您称为“第一列”的数据实际上是在 zoo/xts 用语中是“索引”的行名,而数据可以通过coredata和访问是一个矩阵对象。

从 read/write.zoo 页面上的示例:

Lines <- "CVX 20070201 9 30 51 73.25 81400 0
CVX 20070201 9 30 51 73.25 100 0
CVX 20070201 9 30 51 73.25 100 0
CVX 20070201 9 30 51 73.25 300 0
CVX 20070201 9 30 51 73.25 81400 0
CVX 20070201 9 40 51 73.25 100 0
CVX 20070201 9 40 52 73.25 100 0
CVX 20070201 9 40 53 73.25 300 0"

z <- read.zoo(textConnection(Lines), 
    colClasses = c("NULL", "NULL", "numeric", "numeric", "numeric", "numeric",
        "numeric", "NULL"), 
    col.names = c("Symbol", "Date", "Hour", "Minute", "Second", "Price", 
        "Volume", "junk"),
    index = 1:3,  # do not count columns that are "NULL" in colClasses
    FUN = function(h, m, s) times(paste(h, m, s, sep = ":")),
    FUN2 = function(tt) trunc(tt, "00:00:05"),
    aggregate = mean)
# The only material I added.
write.zoo(z)
"Index" "Price" "Volume"
09:30:50 73.25 32660
09:40:50 73.25 166.666666666667
于 2011-12-16T19:24:13.837 回答
1

如果您的唯一目标是保存对象,以便将来可以再次从 R 访问它,则使用

save(ESH2, file = "C:/ESH2.Rdata") # or whatever you want to call the saved file

会为你做的。您可以稍后使用 load 再次取回对象:

load(file = "C:/ESH2.Rdata")

但如评论中所述,如果您需要帮助使 write.table 或 write.csv 解决方案正常工作,那么您需要提供更多信息。

于 2011-12-16T19:02:07.510 回答