0

我正在尝试使用 R 包从他们的 10-K 报告中提取多家公司的业务描述,edgar. 我正在使用getBusinDescr函数来做到这一点。

由于我想要许多公司(1000 多家)的业务描述,我创建了一个公司的 cik 标识符向量,并让 R 使用该向量下载 1000 多家公司的描述。问题是,R 完美地下载了我想要的填充物(10-K 报告),但它无法提取我感兴趣的部分。它在 2007 年和 2011 年停止在 61% 和 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**
4

1 回答 1

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 代码,以便“”标签不会出现在某些原始文件中。我没有费心去测试这个理论,但它是有道理的。

于 2019-07-26T19:39:25.707 回答