使用R包edgar从10-K报表中提取业务描述时,为什么会遇到错误?

时间:2019-06-06 01:22:18

标签: r edgar

我正在尝试使用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**

1 个答案:

答案 0 :(得分:0)

我遇到了同样的错误,但是发现只是“注释掉”功能代码中有问题的行即可解决问题。

因此,您需要从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])]

,并在每行的开头添加#,以将其从函数中删除(即,将其注释掉)。然后,当您运行该函数时,它应该可以正常工作。

问题在几周后才开始出现,我确信在使用完全相同的基础数据之前,它运行得很好。关于发生这种情况的最佳猜测是,SEC可能会对其HTML代码进行一些更改,以使“”标签不会出现在某些原始文件中。我没有费心去检验这个理论,但这是有道理的。