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

使用runMax无法获取最高价:提示不存在High列求助

问题原因

当auto.assign=TRUE时,getSymbols()不会将数据返回给变量data,而是直接把数据赋值给与股票代码同名的变量(此处为GOOG),此时data只是字符串"GOOG",自然无法用Hi()提取最高价列。

解决方法

有两种可行的修正方式:

方式一:修改auto.assign参数为FALSE

让getSymbols()直接返回数据给data变量:

library(quantmod)

# auto.assign设为FALSE,将数据存入data
data <- getSymbols("GOOG", auto.assign = FALSE)
# 提取最高价并计算30周期滚动最大值
runMax(Hi(data), 30)

方式二:直接使用股票代码对应的变量

保持auto.assign=TRUE,直接操作自动生成的GOOG变量:

library(quantmod)

# 数据自动存入GOOG变量
getSymbols("GOOG", auto.assign = TRUE)
# 对GOOG变量提取最高价并计算滚动最大值
runMax(Hi(GOOG), 30)
验证说明

修正后,Hi()能正确识别xts对象中的最高价列(实际列名为GOOG.High,quantmod的Hi()函数会自动匹配对应字段),runMax()即可正常计算30周期滚动最高价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:55:46