如何在R中的XBRL包中获取由xbrlDoAll创建的列表,并将它们组织成可在Excel中读取的数据框?

时间:2014-03-27 01:35:41

标签: xml r list formatting xbrl

我一直在试验R中的XBRL软件包,试图编写一个循环通过公司和输出财务报表的功能,理想情况是在一个非常标准的数据框中。但是,我不明白输出。使用该函数然后查看数据框,所有出现的内容都是最左边一列的运行总计,右侧是各种XML / XBRL / C ++组件的右对齐URL。我承认我的XBRL知识很少,但我必须遗漏一些东西。我如何使用此包的功能循环并记录所有XBRL语句,格式化为可供最终用户使用的内容?

使用pdf指南中的示例很简单,但它打印出来很奇怪,我不知道如何将其转换为正确的数据框:

## Setting stringsAsFactors = FALSE is highly recommended
## to avoid data frames to create factors from character vectors.
options(stringsAsFactors = FALSE)
## Load the library
library(XBRL)
## XBRL instance file to be analyzed, accessed
## directly from SEC website:
inst <- "http://www.sec.gov/Archives/edgar/data/21344/000002134413000050/ko-20130927.xml"
## Level 1: Function that does all work and returns
## a list of data frames with extracted information:
## Not run:
xbrl.vars <- xbrlDoAll(inst, verbose=TRUE)

总结提供了一系列不同行长的列表:

  

摘要(xbrl.vars)                    长度等级模式       element 7 data.frame list       角色5 data.frame列表       计算11 data.frame list       context 13 data.frame list       第4单元data.frame列表       事实上7个data.frame列表       脚注5 data.frame列表       定义11 data.frame列表       标签5 data.frame列表       演示文稿11 data.frame list

这可能很简单,因为我不理解R中列表的数据框(列表列表?data.frames列表?)。如果是这样,我为一个愚蠢的问题道歉(由于其他原因,它可能是愚蠢的)。我尝试使用此问题答案底部的解决方案:list of lists with different lengths to data.frame in R。所以:     xbrl.vars2&LT; -as.data.frame(as.matrix(xbrl.vars)) 这对我来说是愚蠢的,因为当行数不同时,R如何制作矩阵?它似乎让R冻结了。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

xbrlDoAll的结果是数据框列表。 是从那里获取财务报表的一种方式,但不像预期的那样直接。

数据框(事实,背景,元素,演示文稿,角色等)对应XBRL entities。要获取财务报表结构中的数据,需要进行一些操作。

XBRL软件包可以方便地在data.frames中转换具有明显关系的XML,XLink和模式,因此任务非常简单 - 特别是使用 dplyr tidyr 等工具。请参阅github上的实体图和R代码的资产负债表示例。