购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3.2 数据框和列表

数据框(data frame)是R最常见的数据集(data sets)存储方法,由多列数据构成,每列代表一个变量的测量。数据框可以被看作没有排名称、只有列名称的矩阵。数据框的构建使用函数data.frame,将不同向量组合在一起。例如:

>group<-gl(3,10,labels=c('grp1','grp2','grp3'))

>DV<-c(11,10,10,9,8,8,12,10,10,10,9,10,9,11,8,9,10,10,11,11,6,13,7,6,10,8,6,7,8,5)

>Data<-data.frame(group,DV)

>Data[1:5,]

group DV

1 grp1 11

2 grp1 10

3 grp1 10

4 grp1 9

5 grp1 8

因为这个例子包括的数值较多,输出结果只显示前5排,grp1前面的数字(1,2,…)表示个案(cases)顺序。[1:5,]表示提取所有列的前5排数据。如果只提取第二列的前5排数据,则R命令为Data[1:5,2]。R输出结果为:

>Data[1:5,2]

[1]11 10 10 9 8

提取某个R变量数据还可以使用操作符“ ”。譬如,提取Data数据框中DV的所有数据,输入命令Data$DV,得到:

>Data$DV

[1]11 10 10 9 8 8 12 10 10 10 9 10 9 11 8 9 10 10 11 11 6 13 7 6

[25]10 8 6 7 8 5

如果要提取符合某个条件的数值,可以并用操作符“$”与关系操作符(如“>”)。譬如,提取Data数据框中DV值大于10的所有数据,则输入R命令Data$DV[Data$DV>10]即可:

>Data$DV[Data$DV>10]

[1]11 12 11 11 11 13

要了解数据框中数据的排数和列数,可以用函数nrow和ncol。例如:

>nrow(Data);ncol(Data)

[1]30

[1]2

我们也可以使用函数dim显示数据框的维度(dimension)。例如:

>dim(Data)

[1]30 2

如果使用函数str,则R返还数据存储方式、变量数、观测值数和部分数值。例如:

>str(Data)

:30 obs.of 2 variables:

$ group:Factor w/3 levels'grp1','grp2',…:1 1 1 1 1 1 1 1 1 1 …

$ DV :num 11 10 10 9 8 8 12 10 10 10 …

列表(lists)是数据存储的另外一种重要方法,在本书中主要用于稳健(robust)统计的数据处理。列表数据存储的函数为list,可以将多个对象(objects)合并在一个对象名下。譬如,下面的R输出显示三组数据置于同一个对象Group之下:

>grp1<-c(1,3,7,9,11,15,8,9,12)

>grp2<-c(4,3,5,6,7,8,11,10,9)

>grp3<-c(2,4,3,3,3,6,7,9,12,9,10)

>Group<-list()

>Group[[1]]<-grp1

>Group[[2]]<-grp2

>Group[[3]]<-grp3

>Group

[[1]]

[1]1 3 7 9 11 15 8 9 12

[[2]]

[1]4 3 5 6 7 8 11 10 9

[[3]]

[1]2 4 3 3 3 6 7 9 12 9 10

对于列表数据的数学运算可以利用函数lapply。譬如,lapply对列表Group中每个列表数值平均数的计算结果如下:

>lapply(Group,FUN=mean)# FUN can be dropped

[[1]]

[1]8.333333

[[2]]

[1]7

[[3]]

[1]6.181818 PfCLO7QuA6euLYalbNuIdmdqvPZrVXLT7Kmb/0BfCW9sUsVleJkND52kmjNwbppJ

点击中间区域
呼出菜单
上一章
目录
下一章
×