一、从数据集中取子集

这里以数据框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中的数据从大到小排序后,输出元素原本的位置