使用quantmod无法提取沙特股市股票开盘价,报unexpected symbol错误
问题解决方法
1. 提取行情数据报错的原因及解决
你遇到的Error: unexpected symbol是因为R里数字开头且带点的对象名(比如2222.SR)不能直接作为函数参数——R会把2222.SR解析成2222 * SR,而不是你获取的股票数据对象。
解决方法有两种:
- 方法一:调用
Op()等函数时,用反引号把对象名包起来:OPEN1 <- Op(`2222.SR`) CLOSE1 <- Cl(`2222.SR`) - 方法二:获取数据时手动指定变量名,避免自动生成带特殊格式的对象名:
# 关闭自动赋值,手动存储数据 stock_2222 <- getSymbols("2222.SR", auto.assign = FALSE) OPEN1 <- Op(stock_2222)
美股代码(比如AAPL)是字母开头,所以不会触发这个解析问题,这就是为啥美股能正常运行的原因。
2. 缺失值警告的处理
针对7010.SR的缺失值警告,直接用提示的函数处理即可:
- 直接删除含缺失值的行:
stock_7010_clean <- na.omit(`7010.SR`) - 用线性插值填充缺失值(适合时间序列数据):
stock_7010_fill <- na.approx(`7010.SR`) - 用前后值填充:
stock_7010_fill <- na.fill(`7010.SR`, "extend")
处理完缺失值后,再调用Op()、Cl()等函数就不会有潜在问题了。
内容的提问来源于stack exchange,提问作者BubaZeed
相关产品推荐
相关产品推荐

