You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现xts对象与.csv文件的往返读写?

解决xts对象往返读写后转换失败的问题

问题出在read.zoo的调用参数上——你没明确指定表头和日期索引列,导致它返回的是数据框而非zoo对象,后续as.xts自然无法正常转换。

修正步骤如下:

  • 读取文件时,明确指定表头存在、第一列为日期索引,同时指定日期格式(确保解析正确):
x <- read.zoo("newapple.txt", sep=",", header=TRUE, index.column=1, format="%Y-%m-%d")

这里header=TRUE对应write.zoo写入的表头,index.column=1告诉函数第一列是时间索引,format指定日期格式避免解析错误。

  • 接着直接转换为xts对象即可:
x_xts <- as.xts(x)
class(x_xts) # 输出应为"xts" "zoo"
  • 验证写入操作:
write.zoo(x_xts, file="newerapple.txt", sep=",")

完整修正后的代码:

library(quantmod)
from <- "2016-01-01" ## leap year
to <- "2017-01-01"
symbol <- "AAPL"
getSymbols(symbol, from=from, to=to)
class(AAPL)
write.zoo(AAPL, file="newapple.txt", sep=",")

# 修正后的读取代码
x <- read.zoo("newapple.txt", sep=",", header=TRUE, index.column=1, format="%Y-%m-%d")
class(x) # 现在输出应为"zoo"

x_xts <- as.xts(x)
class(x_xts)

write.zoo(x_xts, file="newerapple.txt", sep=",") # 正常执行

内容的提问来源于stack exchange,提问作者Ray Tayek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:46:04