拉多个股票行情时出现getSplitsQuantmod错误

问题描述

当尝试在所有S&P 500代码上运行getSplits函数时,我收到以下错误“ open.connection(file,“ rt”)中的错误:HTTP错误404)“

如果我对提供的报价进行了子集化并且仅运行了其中一部分,则能够运行该功能。有没有办法写一行代码来绕过任何可能导致HTTP错误代码

library(tidyverse)
library(BatchGetSymbols)
library(quantmod)

tickers <- GetSP500Stocks()

split_env <- lapply(tickers,function(x) getSplits(x))

解决方法

您可以使用try()来防止其损坏:

library(tidyverse)
library(BatchGetSymbols)
library(quantmod)

tickers <- GetSP500Stocks()[1:20,]

split_env = lapply(tickers$Tickers,function(x)try(getSplits(x)))
names(split_env) = tickers$Tickers

如果我没记错的话,你可以得到没有错误的

head(split_env[sapply(split_env,is.xts)])
$MMM
           MMM.spl
1972-06-16     0.5
1987-06-16     0.5
1994-04-11     0.5
2003-09-30     0.5

$ABT
           ABT.spl
1981-06-01  0.5000
1986-06-02  0.5000
1990-06-01  0.5000
1992-06-01  0.5000
1998-06-01  0.5000
2004-05-03  0.9356
2013-01-02  0.4798

$ABMD
           ABMD.spl
2000-10-02      0.5

$ACN
           ACN.spl
2011-12-30     0.1

$ATVI
            ATVI.spl
2001-11-21 0.6666667
2003-06-09 0.6666667
2004-03-16 0.6666667
2005-03-23 0.7500000
2005-10-25 0.7500000
2008-09-08 0.5000000

$ADBE
           ADBE.spl
1987-03-12      0.5
1988-11-23      0.5
1993-08-11      0.5
1997-07-29      1.0
1997-10-29      1.0
1999-10-27      0.5
2000-10-25      0.5
2005-05-24      0.5
,

向前安装Quantmod v。0.4.17.2; CRAN还没有此版本,因此请直接从github安装im2("js/image2.jpg","position: fixed; top:210px ; left:165px","280","35",'article2'); 由于新版本可以处理多个连接和句柄(请检查this),因此您需要使用此版本将多个请求推送到yahoo。

以下功能使用多个内核。因此,如果需要,可以将devtools::install_github("joshuaulrich/quantmod")替换为%dopar%

%do%

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...