按照个人要求的格式来创建含有研究信息的数据集,这是任何数据分析的第一步。在R中,这个任务包括以下两步:
- 选择一种数据结构来存储数据;
- 将数据输入或导入到这个数据结构中。
数据集概念
数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。
数据结构
向量
- 向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可用来创建向量。
- 数值型向量,逻辑型向量,字符型向量。
- 单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)。同一向量中无法混杂不同模式的数据。
矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型) 。可通过函数matrix创建矩阵。
矩阵下标
数组
数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:
myarray<-array(vector,dimensions,dimnames)
其中vector包含了数组中的数据, dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。代码清单2-3给出了一个创建三维数值型数组的示例。
数据框
由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更为一般。它与你通常在SAS、 SPSS和Stata中看到的数据集类似。数据框将是你在R中最常处理的数据结构。
因子
如你所见,变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别变量。类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor) 。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。
列表
列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。
- 对象名称中的句点(.)没有特殊意义。但美元符号($)却有着和其他语言中的句点类似的含义,即指定一个对象中的某些部分。
- R不提供多行注释或块注释功能。你必须以#作为多行注释每行的开始。出于调试目的,你也可以把想让解释器忽略的代码放到语句if(FALSE){. .. }中。将FALSE改为TRUE即允许这块代码执行。
- 将一个值赋给某个向量、矩阵、数组或列表中一个不存在的元素时, R将自动扩展这个数据结构以容纳新值。
- R中没有标量。标量以单元素向量的形式出现。
- R中的下标不从0开始,而从1开始。在上述向量中, x[1]的值为8。
- 变量无法被声明。它们在首次被赋值时生成。
数据输入
使用键盘输入数据
从带分隔符的文本文件导入数据
导入excel
导入XML数据
从网页抓取数据
导入SPSS数据
导入SAS数据
导入Stata数据
导入netCDF数据
导入HDF5 数据
访问数据库管理系统
通过Stat/Transfer导入数据
数据集标注
为了使结果更易解读,数据分析人员通常会对数据集进行标注。通常这种标注包括为变量名添加描述性的标签,以及为类别型变量中的编码添加值标签。例如,对于变量age,你可能想附加一个描述更详细的标签“ Age at hospitalization”(入院年龄) 。对于编码为1或2的性别变量gender,你可能想将其关联到标签“ male”和“ female”上。
变量标签
R处理变量标签的能力有限。一种解决方法是将变量标签作为变量名,然后通过位置下标来访问这个变量。
值标签
函数factor()可为类别型变量创建值标签。