使用R语言quantmod工具每日分析股票价格遇问题求助
解决
getQuote()拉取股价异常的问题 嘿,我之前也踩过类似的坑,咱们来一步步排查和解决这个问题!
核心问题:Ticker向量的格式错了
你用shQuote()给每个Ticker加引号,再拼成一个逗号分隔的字符串——但getQuote()(尤其是quantmod包里的版本)需要的是字符向量,而不是这种带引号的单字符串。举个例子:如果你的目标Ticker是AAPL、GOOGL、MSFT,你的代码生成的是'"AAPL", "GOOGL", "MSFT"',这会被当成一个单独的无效Ticker去查询,自然会返回异常结果。
解决方案:生成正确的Ticker向量
直接去掉shQuote()和paste()的拼接操作,用筛选后的Ticker列直接作为向量就行:
# 假设你已经完成了CSV加载和股票筛选 tickers <- data$Ticker # 直接取筛选后的Ticker列,得到字符向量 today <- getQuote(tickers) # 直接传向量给getQuote
额外的排查小贴士
- 先检查CSV里的Ticker拼写:比如苹果是
AAPL,谷歌常用GOOGL或GOOG,微软是MSFT,别写错了 - 跑代码前可以先打印
tickers确认格式:print(tickers),应该是类似[1] "AAPL" "GOOGL" "MSFT"的字符向量,而不是带引号的长字符串 - 如果还是有问题,敲
?getQuote查看函数文档,确认你的版本对参数的要求(不同包的getQuote可能有细微差异)
给你一个完整的示例代码参考:
# 加载目标CSV stock_data <- read.csv("your_stock_list.csv") # 筛选目标股票(比如苹果、谷歌、微软) target_tickers <- c("AAPL", "GOOGL", "MSFT") filtered_stocks <- stock_data[stock_data$Ticker %in% target_tickers, ] # 生成正确的Ticker向量 tickers <- filtered_stocks$Ticker # 拉取当日股价 today_prices <- getQuote(tickers) # 查看结果 print(today_prices)
这样应该就能正常拉取到你需要的股价数据啦!
内容的提问来源于stack exchange,提问作者Foothill_trudger
相关产品推荐
相关产品推荐

