在R语言中,很多数据分析算法函数的输入都是数据框对象。而且,在使用读取excel/txt等格式数据集的函数时,也是以数据框对象输出的。类似于list,数据框也可以由不同的向量作为列来合成,并且不同列间的元素可以是不同的数据类型。但是数据框并没有list那么灵活,数据框内每个列的长度必须相同。
在实际操作中,通常会用数据框的一列代表某一变量属性的所有取值,用一行代表某一样本数据。
1.数据框的创建
data.frame函数可以直接把多个向量建立为一个数据框,并为列设置名称。例如:
web.data<-data.frame(date=c("2012.1.1","2012.1.2","2012.1.3","2012.1.4","2012.1.5",
"2012.1.6","2012.1.7"),pv=c(10234,20119,9087,11093,10099,15899,9908),
times=c(30.98,33.09,20.09,22.98,17.00,40.09,38.34),
bounce=c(0.61,0.623,0.679,0.709,0.611,0.54,0.609));web.data
date pv times bounce
1 2012.1.1 10234 30.98 0.610
2 2012.1.2 20119 33.09 0.623
3 2012.1.3 9087 20.09 0.679
4 2012.1.4 11093 22.98 0.709
5 2012.1.5 10099 17.00 0.611
6 2012.1.6 15899 40.09 0.540
7 2012.1.7 9908 38.34 0.609
在上例中,数据框包括3列(名称为pv、times、bounce)7行数据元素。实际上这是某网站7天里的页面浏览量、网站停留时间、网站跳出率的基本数据。
除了使用向量组成数据框外,还可以通过data.frame函数把矩阵matrix转化为数据框。例如:
data.matrix<-matrix(1:12,c(3,4))
data.frame(data.matrix)
X1 X2 X3 X4
1 1 4 7 10
2 2 5 8 11
3 3 6 9 12
2.数据框的列名称
上面在建立数据框时直接设置了列名称,其实,也可以通过names(<数据框>)来读取并编辑列名称。在下例中,数据框的第一列名称date被改为new.date。
names(web.data)
[1] "date" "pv" "times" "bounce"
names(web.data)[1]<-"new.date"
names(web.data)
[1] "new.date" "pv" "times" "bounce"