数据框
由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更
为一般。它与你通常在SAS、SPSS和Stata中看到的数据集类似。数据框将是你在R中最常处理的
数据结构。
表
2-
1所示的病例数据集包含了数值型和字符型数据。由于数据有多种模式,无法将此数据
集放入一个矩阵。在这种情况下,使用数据框是最佳选择。
数据框可通过函数data.frame()创建:
mydata <- data.frame(col1, col2, col3,
...)
其中的列向量col1、col2、col3等可为任何类型(如字符型、数值型或逻辑型)。每一列的名
称可由函数names指定
> ID <-c(
1,
2,
3,
4)
> age <-c(
25,
34,
28,
52)
> data <-c(
"beijing",
"shanghai",
"shenzhen",
"guanzhou")
> grade <-c(
"A",
"B",
"A+",
"A")
> fatherdata <-data.frame(ID,age,data,grade)
> fatherdata
ID age data grade
1 1 25 beijing A
2 2 34 shanghai B
3 3 28 shenzhen A+
4 4 52 guanzhou A
查询:
> fatherdata[
1:
2]
ID age
1 1 25
2 2 34
3 3 28
4 4 52
> fatherdata[c(
"age",
"data")]
age data
1 25 beijing
2 34 shanghai
3 28 shenzhen
4 52 guanzhou
列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,
component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。例如,
显示对象的结构
显示对象的
统计概要
以向量形式输入数据
2
某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。可以使用函数list()创
建列表:
mylist <- list(object1, object2,
...)
其中的对象可以是目前为止讲到的任何结构。你还可以为列表中的对象命名:
mylist <- list(name1=object1, name2=object2,
...)
> str <-
"My First List"
> h <- c(
10,
15,
20,
35,
40)
> i <- matrix(
1:
10,nrow=
5)
>
> k <- c(
"one",
"two",
"three",
"four")
> list <- list(title=str,merber=h,i,k)
> list
$title
[
1]
"My First List"
$merber
[
1]
10 15 20 35 40
[[
3]]
[,
1] [,
2]
[
1,]
1 6
[
2,]
2 7
[
3,]
3 8
[
4,]
4 9
[
5,]
5 10
[[
4]]
[
1]
"one" "two" "three" "four"