数据框是一种表格式的数据结构,其结构与矩阵类似,但数据框的每一列必须命名且为同类型数据。数据框用于组织存储多个存储类型不相同的变量。数据框是一张二维表格,行和列分别称为观测和变量,在R中分别称为记录和域,域名即变量名。在实际运用中,数据框是R中最多使用的数据结构。
如上为一组数据框,排名行称为表头,即为该数据框的各域名,除去域名行,数据框中的每一行可以视作一个列表,每一列可以视为一个矩阵。
(一)数据框的建立
数据框的建立一般采用data.frame( )函数建立,names( )函数来显示数据框的域名,is.data.frame()用来判断数据对象是否为数据框,其基本书写格式为:
data.frame(域名1=向量名1,域名2=向量名2,...)
names(数据框名)
is.data.frame(数据对象名)
x <- seq(1,20,1) #创建向量x
y <- rep(1:10,each=2) #创建向量y
z <- c('q','w','e','r','t','y','u','i','o','p') #创建字符串向量z
k <- data.frame('Mysql'=x,'Python'=y,'R'=z) #创建数据框k
names(k) #显示数据框k的域名
str(k) #显示数据框k的结构信息
is.data.frame(k) #判断数据对象k是否为数据框
(二)数据框的基本操作
我们可以利用矩阵访问方式来访问数据框,但更常用的是通过对各个域的访问来实现对数据框的访问,基本的书写格式如下:
数据框名 $ 域名
k $ Mysql #访问数据框k中域名为Mysql的列
此外,可以通过数据绑定函数attach( )函数与解除数据绑定函数detach( )的联立使用来简化访问时的域名书写,但是这两个函数必须配套使用,其基本书写格式为:
attach(数据框名)
域名1
域名2
...
detach(数据框名)
#访问数据框k中域名为Mysql,Python,R的列
attach(k)
Mysql
Python
R
detach(k)
也可以利用with函数来进行数据框的访问,其基本书写格式为:
with(数据框名,{
域访问函数1
域访问函数2
...
})
with(k,{R}) #访问数据框k中域名为R的列
若想要修改数据框中的域值或者增加一个新的域,我们需要调用within( )函数,基本书写格式为:
数据框名 <-within(数据框名,{
域访问函数
...
域修改函数
...
})
#向数据框k中插入两个新的域
within(k,{
Navicat <- Mysql+Python
Java <- Mysql-Pthon
})
总而言之,数据框是R中数据组织最常用的方式。