R语言利用sample函数抽样
2018-11-07 本文已影响17人
周一ing
-
sample基本用法
参数解释:x表示所要抽样数据,size表示抽样个数,replace为T表示采取有重复的抽样
代码目的:在1到10间有放回的随机抽取5个数
data=1:10
sample(x=data,size=5,replace=T)
image.png
- 对数据框抽取
data=1:10
#抽取列
sample(x=data,size=1,replace=T)
#抽取行
data[sample(nrow(data),2,replace=F),]
image.png
-
按一定比例抽取
代码目的:将数据bdata按7:3比例划分训练集和测试集
set.seed(1234)
#按7:3的比例产生了1和2
index <- sample(x = 2,size = nrow(bdata),replace=TRUE,prob = c(0.7,0.3))
traindata <- bdata[index == 1,]
testdata <- bdata[index == 2,]
-
按某个字段分层抽取
代码目的:将data数据集按s字段分组,在每一组里随机抽取两行,将抽取结果合并成数据框result
变量解释
data原始数据集;
subdata将data按s字段分组后的小块,类型为列表,
subdata[[1]]则为其中第一个小数据框;
x每个小数据框随机抽取两行的结果;
result最终抽样结果
result<-data.frame()
data<-data.frame(a=c(1,2,3,4,6,7,8,5,11,12),b=c(2,3,4,5,65,4,6,6,8,9),s=c('A','B','A','A','B','A','B','A','B','B'))
subdata<-split(data,data$s)
for(i in 1:length(subdata)){
sub<-subdata[[i]]
x<-sub[sample(nrow(sub),2,replace=F),]
result<-rbind(result,x)
}
result
image.png