- 数据框是R的一种数据结构。它通常是矩阵形式的数据,但矩阵各列可以是不同类型的。
- 数据框是一种特殊的列表对象。各列表成员必须是向量(数值型、字符型、逻辑型)、因子、数值型矩阵、列表,或其它数据框。向量、因子成员为数据框提供一个变量,如果向量非数值型则会被强制转换为因子,而矩阵、列表、数据框这样的成员为新数据框提供了和其列数、成员数、变量数相同个数的变量。作为数据框变量的向量、因子或矩阵必须具有相同的长度(行数)。
> d=data.frame( name=c("赵", "钱", "孙", "李", "王"),
age=c(20,21,22,21,20),
height=c(170,171,175,165,181),
gender=c("男", "女", "男", "女", "男" ))
> d
name age height gender
1 赵 20 170 男
2 钱 21 171 女
3 孙 22 175 男
4 李 21 165 女
5 王 20 181 男
> d[1]
name
1 赵
2 钱
3 孙
4 李
5 王
> d[[1]]
[1] 赵 钱 孙 李 王
Levels: 李 钱 孙 王 赵
# 可见,d里的非数值向量已经变成因子了
> d[[2]][2:3]
[1] 21 22
数据框引用
- 数据框的各变量也可以用按列表引用(即用双括号[[]] 或$符号引用, 和列表的引用方法一致)。
- 引用数据框元素的方法与引用矩阵元素的方法相同,可以使用下标或下标向量,也可以使用名字或名字向量。
- names():数据框的变量名(列的名字)由属性names定义。
- rownames() 数据框的各行也可以定义名字,可以用rownames属性定义
attach
> attach(d)
> r <- height / age
> d$r <- height / age
> d
> # 为了取消连接,只要调用detach()(无参数即可