我正在尝试使用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**
答案 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代码进行一些更改,以使“”标签不会出现在某些原始文件中。我没有费心去检验这个理论,但这是有道理的。