chap.2 创建数据集
2.1 数据集的概念
数据集行列的叫法:1)统计学家 观测(observation)和变量(variable)
2)数据库分析师 记录(record)和字段(field)
3)数据挖掘和机器学习学科研究员 实例(example)和属性(attribute)
R中存储数据的结构:标量、向量、矩阵、数组、数据框和列表
R中处理的数据类型:数值型、字符型、逻辑型(TRUE/FALSE)、复数型、原生型(字节)
2.2 数据结构
一些定义:1)对象。对象(object)是指可以赋值给任何变量的任何事物,包括常量、数据结构、函数甚至图形。
2)数据框。 数据框(data frame)是R中用于存储数据的一种结构:列表示变量,行表示观测值。同一个数据框可存储不同类型的变量。数据框是存储数据集的主要数据结构。
数据结构名称 | 介绍 | 创建函数 | 包含数据类型 | 备注 |
---|---|---|---|---|
向量 | 一位数组 | c() | 同一类型 | |
矩阵 | 二维数组 | matrix() | 同一类型 | |
数组(array) | 维度可以大于2 | array() | 同一类型 | 矩阵的推广 |
数据框 | 最常用的数据结构 | data.frame() | 不同类型 | 每列数据的类型相同,不同列类型可以不同 |
列表 | 重要的数据结构 一些对象(或成分,component)的有序集合 | list() | 不同类型 | 对象可以是任何结构,甚至是其他列表的组合; 许多R函数的运行结果以列表形式返回 |
关于选取数据框中的元素问题:
1. 记号$
记号$被用来选取一个给定数据框中的某个特定变量。
以R自带的mtcars数据框为例,使用以下代码获取mpg与wt的散点图。
> plot(mtcars$mpg,mtcars$wt)
2. attach()、detach()和with()
函数attach()可将数据框添加到R的搜索路径中。R在遇到一个变量名后,将检查搜索路径中的数据框。
函数detach()将数据框从搜索路径中移除。
上述两个函数最好在分析一个单独的数据框,且没有多个同名对象时使用。
因此,1.中的代码可以写为
attach(mtcars)
plot(mpg,wt)
detach(mtcars)
当名称相同的对象不止一个时,考虑使用with()函数。代码如下:
with(mtcars, {
print(summary(mpg))
plot(mpg,wt)
})
这种情况下,花括号{ }之间的语句都是针对数据框mtcars的。若仅有一条语句,则花括号可以省略。
with(mtcars, {
nokeepstats <- summary(mpg)
keepstats <<- summary(mpg)
})
nokeepstats
keepstats
运行结果:
错误: 找不到对象'nokeepstats'
> keepstats
Min. 1st Qu. Median Mean 3rd Qu. Max.
10.40 15.43 19.20 20.09 22.80 33.90
3. 实例标识符
R中实例标识符可通过数据框操作函数data.frame()中的row.names来指定。
关于因子:
类别(名义型)变量和有序(有序型)变量在R中称为因子。(变量可归结为名义型、有序型、连续型变量)
factor()函数以一个整数向量的形式存储类别,整数的取值范围时[1...k](其中k时名义型变量中唯一值的个数),同时一个字符串(原始值)组成的内部向量将映射到这些整数上。
要表示有序变量,需要为factor()函数指定参数ordered=TRUE。对于字符型变量,因子的水平默认依字母顺序创建。也可以通过指定levels选项来覆盖默认排序。
数值型变量可以通过levels和labels来编码成因子。标签顺序必须和水平顺序相一致。
注:确保指定的水平与数据真实值相匹配, 任何在数据中出现而在参数中未例举的数据都将被设为缺失值。