生产复杂表格的R软件包:tables

数据的输入输出一直是数据处理比较重要的问题。我们常见的数据表格的表头设计一般都比较复杂,存在着表头套表头的现象,而这种表格的结构对于一个数据分析软件来说是没法理解的。数据软件所能理解的表格是那种标准化的表格,也就是第一行是字段名(也就是变量名),从第二行到表格结束就是具体的内容(也就是变量的取值,或者叫实例)。这样除去第一行后,每一行表示一个实例(统计上叫一个观测,或者某个对象的属性),每一列表示一个变量的取值。如我们经常用到的iris数据表(为了简便,随机从每个Species类别中选取了1个数据):

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.8 4.0 1.2 0.2 setosa
5.5 2.5 4.0 1.3 versicolor
6.9 3.2 5.7 2.3 virginica

实际上,在R中我们一般以data.frame的形式储存数据,实际上所面对的就是上面这种数据表格。这种数据表格对于编程人员来说很实用很方便,但对于一般人而言,就会觉得很不直观,比如我们将上面表格中的iris数据等价地变换一下,就会发现这样的问题:

Species Type Shape Value
setosa Sepal Length 5.8
versicolor Sepal Length 5.5
virginica Sepal Length 6.9
setosa Sepal Width 4.0
versicolor Sepal Width 2.5
virginica Sepal Width 3.2
setosa Petal Length 1.2
versicolor Petal Length 4.0
virginica Petal Length 5.7
setosa Petal Width 0.2
versicolor Petal Width 1.3
virginica Petal Width 2.3

基于泰勒展开的不确定性传递

1 两个输入变量

假设随机变量是随机变量和随机变量的函数,函数关系如下

其中的均值分别为,方差分别为1,协方差为。对进行关于泰勒展开可以得到

如果忽略高阶项,那么根据随机变量求和的期望和方差计算公式

可以得到的期望值与方差值分别如下

sfc软件包中文说明

sfc软件包于2016年8月25日正式出现在CRAN上,其主要功能是进行大规模物质流核算和不确定性分析。与传统物质流核算方法不同的是,sfc软件包是基于数据和模型分离的思想构建的。这种方法的优势在于能够把模型从复杂的数据结构中抽离出来,从而使研究者能够把注意力集中在模型的构建上,以避免复杂数据结构对建模过程的干扰。

1 安装sfc

sfc软件包依赖于dplyr、tidyr、triangle、zoo、sna等R软件包,因此在R平台上安装sfc之前,最好先安装好这些依赖的软件包。sfc软件包可以用如下方式安装:

install.packages("sfc")

如果要安装sfc软件包的最新开发版,则可以通过以下方式:

install.packages("devtools")
devtools::install_github("ctfysh/sfc")

2 数据文件

物质流核算涉及的数据的类型多且量大,同时数据存在着一定的不确定性,所以需要有一种既简单直观又易于被模型所有调用的数据格式,来管理这些数据。表1就是sfc软件包为了物质流核算所设计的一种数据文件格式,以.csv的形式存储,或者直接以数据框(data frame)的形式存在于内存中,供sfc软件包中的sfc函数调用。