R语言随机抽样及分层抽样

R语言随机抽样及分层抽样

    • 问题
    • 1、计算层次个数
    • 2、固定随机提取
    • 3、随机抽样
      • 看完如果对你有帮助,感谢点赞支持!
      • 如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

问题

> dim(ml_data)
[1] 201253     11
  • 场景:20万行数据中,抽取每个月中的任意一天的数据,即,2019-9-6/2019-9-7/2019-9-8…
    R语言随机抽样及分层抽样_第1张图片

1、计算层次个数

  • dplyr包中count函数计算出每天的数据量,然后dim查看数据列346行,346个层次,346天。
> bb <- count(ml_data,date)
> > head(bb)
      date    n
1 20190906  568
2 20190907 1130
3 20190908  514
4 20190909  529
5 20190910  568
6 20190911  114
> dim(bb)
[1] 346   2

2、固定随机提取

  • set.seed(1)固定随机取数
  • sampling包中strata函数
  • 合并日期date向量下抽取,时间缩短
strata(data,stratanames=NULL,size,
       method=c("srswor","srswr","poisson","systematic"),
       pik,description=FALS)
#stratanames: 进行分层所依据的变量名称。
#size: 各层中要抽出的观测样本数。
#method: 选择4中抽样方法,分别为无放回、有放回、泊松、系统抽样,默认为srswor。
> set.seed(1)
> #注意size,每层抽取1个数,如果两个或者三个。。。
> sample_day <- strata(ml_data,stratanames = c("year","month","day"),size = rep(1,346),method="srswor")
> head(sample_day)
     year month day ID_unit         Prob Stratum
129  2019    09  06     129 0.0017605634       1
1498 2019    09  07    1498 0.0008849558       2
2207 2019    09  08    2207 0.0019455253       3
2683 2019    09  09    2683 0.0018903592       4
3040 2019    09  10    3040 0.0017605634       5
3323 2019    09  11    3323 0.0087719298       6
  • 两个相同
> set.seed(1)
> sample_day <- strata(ml_data,stratanames = "date",size = rep(1,346),method="srswor")
> head(sample_day)
         date ID_unit         Prob Stratum
129  20190906     129 0.0017605634       1
1498 20190907    1498 0.0008849558       2
2207 20190908    2207 0.0019455253       3
2683 20190909    2683 0.0018903592       4
3040 20190910    3040 0.0017605634       5
3323 20190911    3323 0.0087719298       6

3、随机抽样

sample(x, size, replace = FALSE, prob = NULL)
x:为向量
size:为样本容量
replace:表示是否为有放回的抽样,是一个逻辑值,默认为FALSE,即默认为无放回抽样;
prob:为权重向量,即x中元素被抽取到的概率,是一个取值0~1的向量,其长度应该与x的长度相同。

  • 举例
> sample(1:20, 5)
[1] 19 16 15 20  1
> sample(1:20, 5)
[1] 19 14  6 11  8
> set.seed(2)
> sample(1:20, 5)
[1] 15  6 19  8  1

看完如果对你有帮助,感谢点赞支持!

如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述

你可能感兴趣的:(数据整理,R语言学习,数据分析,r语言,随机取样,分层随机抽取)