生产复杂表格的R软件包:tables
06 Feb 2017数据的输入输出一直是数据处理比较重要的问题。我们常见的数据表格的表头设计一般都比较复杂,存在着表头套表头的现象,而这种表格的结构对于一个数据分析软件来说是没法理解的。数据软件所能理解的表格是那种标准化的表格,也就是第一行是字段名(也就是变量名),从第二行到表格结束就是具体的内容(也就是变量的取值,或者叫实例)。这样除去第一行后,每一行表示一个实例(统计上叫一个观测,或者某个对象的属性),每一列表示一个变量的取值。如我们经常用到的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 |