分享

R语言利用sample函数抽样

 iceer1212 2020-05-26
  • 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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多