一、从数据集中取子集
这里以数据框x做演示
x <= read_excel('车险数据.xlsx')
(一)索引的方法
1、常规方法索引取子集
x1 <- x[c(1:30),c(1:3)] #连续筛选索引1~30行;1,2,3的数据为x1
x2 <- x[c(1,3,6),c(2,4,1)] #不连续筛选索引1,3,6行;1,2,4列的数据为x2
2、subset函数取子集
书写格式:subset(数据对象名,条件)
y1 <- subset(x,x$nclaims<=10 & x$claimamt>=1000)
(二)sample( )函数的使用
sample( )函数用于从大数据集中随机抽样,基本书写格式如下:
sample(数据对象名,抽取元素个数,replace=T/F)
其中replace为真时,允许重复抽取
sample(x,30,replace=F) #从x中随机抽取30个元素
sample(x,60,replace=T) #从x中随机抽取60个元素,允许重复抽取
sort(sample(x,60,replace=T)) #从x中随机抽取60个元素,允许重复抽取,并将结果从小到大排序
sample(x$claimamt,30,replace = F) #在claimamt一列中随机不重复抽取30次
二、列表数据的转换操作
(一)列表的行列转置
基本书写格式:rev(数据对象名)
t(y) #将列表y的行列转置
rev(z) #将向量z的元素翻转,首尾颠倒
rev(y) #将列表y的行翻转,首行变尾行,尾行变首行
(二)transform函数实现数据转换
transform函数可以实现改变原变量的某一列或某一些列的值;给原变量添加一个新的一列;通过赋值为NULL从而删除某一列。基本书写格式:
transform(数据对象名,变动情况)
m <- data.frame(x,y,z) #建立数据框m
transform(m,x=x*2) #将x列的值乘两倍
transform(m,h=y*2) #添加新的一列,值为y变量值的两倍
transform(m,x=NULL) #删除x列
(三)数据框的排序
我们可以利用sort函数、order函数来对数据框的数据进行排序处理。用法如下:
1、sort函数
sort函数虽然不可以用于数据框的排序操作,但是在向量的排序中应用十分广泛,一般将数据框的一列视作一个向量。基本书写格式:sort(x)
sort(x) #将x中的数据从小到大排序
rev(sort(x)) #将x中的数据从大到小排序
2、order函数
order函数排序的不是元素取值,order函数是将元素所在的位置进行排序,基本书写格式:order(x)
order(x) #将x中的数据从小到大排序后,输出元素原本的位置
rev(order(x)) #将x中的数据从大到小排序后,输出元素原本的位置