我一直在试验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冻结了。
感谢您的帮助。
答案 0 :(得分:0)
xbrlDoAll
的结果是数据框列表。 是从那里获取财务报表的一种方式,但不像预期的那样直接。
数据框(事实,背景,元素,演示文稿,角色等)对应XBRL entities。要获取财务报表结构中的数据,需要进行一些操作。
XBRL软件包可以方便地在data.frames中转换具有明显关系的XML,XLink和模式,因此任务非常简单 - 特别是使用 dplyr 和 tidyr 等工具。请参阅github上的实体图和R代码的资产负债表示例。