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

R语言使用变量指代xts对象保存为.Rds文件异常问题咨询

R语言动态指定xts对象保存为Rds文件的解决方法

问题原因

你调用getSymbols.yahoo时默认开启了auto.assign = TRUE参数,函数会自动把下载的xts数据赋值到全局环境中,返回值仅为对应对象的名称字符串(也就是你拿到的yahooSymbol是字符串类型,存的是"NKLA"这种文本,不是数据对象本身),直接传给saveRDS就只会保存这个字符串,所以生成的文件极小。

解决方法

方法1:通过字符串获取全局环境中的对象

不用修改原有下载逻辑,仅修改保存代码即可,用get()函数根据字符串名称提取全局环境中的实际数据对象:

# 替换原来的saveRDS行即可
saveRDS(get(yahooSymbol, envir = globalenv()), file = saveRDSfile)

方法2:下载时直接赋值给变量(更推荐)

关闭auto.assign参数,让getSymbols.yahoo直接返回xts数据对象而不是字符串名称,不需要在全局环境中生成和股票代码同名的变量,也不需要后续做字符串转对象的操作,逻辑更简洁安全,也不会出现变量名冲突的问题:

# 修改下载代码,关闭自动赋值
yahooData <- getSymbols.yahoo(ticker, auto.assign = FALSE)
# 直接保存数据对象即可
saveRDS(yahooData, file = saveRDSfile)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:24:05