我正在尝试使用R包edgar从10-K报告中提取多家公司的业务描述。我使用getBusinDescr函数来做这件事。
由于我想要许多公司的业务描述( 1000+ ),我创建了公司的cik标识符的向量,并让R使用该向量下载1000+公司的描述。问题是,R完美地下载了我想要的填充物(10-K报告),而它却无法提取我感兴趣的部分。2007年为61%,2011年为31%。然而,在2010年,提取结果达到了100%。
总而言之,提取在某些年份有效,但在其他年份不起作用。我很想知道这个错误是从哪里来的。你认为这是因为数据的可用性(即,某些公司有几年没有业务描述)还是因为重复的抓取尝试而导致的一些自然错误?请帮助我解释,并希望处理的错误。
仅供参考,我在Mac上使用的是最新的R。
我使用的代码是:
# using edgar package on R
library(edgar)
# cikvector is a vector of multiple firms' identifier codes
# for year 2007
- filings.BusinDes.2007 <- getBusinDescr( cik.no=cikvector, filing.year=2007)
# for year 2008
filings.BusinDes.2008 <- getBusinDescr( cik.no=cikvector, filing.year=2008)理想的结果如下:
Downloading fillings. Please wait...
100%
Extracting 'Item 1' section...
100%
Business descriptions are stored in 'Business descriptions text' directory.我遇到的错误如下(不过,下载整个报告没有任何问题):
Downloading fillings. Please wait...
100%
Extracting 'Item 1' section...
**| 31%Error in (grep("<DOCUMENT>", filing.text, ignore.case = TRUE)[1]): (grep("</DOCUMENT>", :
NA/NaN argument**发布于 2019-07-27 03:39:26
我得到了同样的错误,但发现简单地“注释掉”函数代码中有问题的行就解决了这个问题。
因此,您需要编辑Edgar包中的函数'getBusinDescr‘。在R-Studio中实现这一点的一个简单方法是直接运行:
fix(getBusinDescr)接下来,您需要找到以下几行:
filing.text <- filing.text[(grep("<DOCUMENT>", filing.text,
ignore.case = TRUE)[1]):(grep("</DOCUMENT>", filing.text,
ignore.case = TRUE)[1])]并在每一行的开头添加一个#,以便从函数中删除它们(即注释掉它们)。然后,当您运行该函数时,它应该工作得很好。
对于我来说,这个问题是在几周前开始的,我确信它在使用完全相同的底层数据之前运行得很完美。我最好的猜测是证券交易委员会可能对他们的HTML代码做了一些修改,这样"“标签就不会出现在一些原始文件中。我没有费心去测试这个理论,但它是有意义的。
https://stackoverflow.com/questions/56469857
复制相似问题