问题
> dim(ml_data)
[1] 201253 11
- 场景:20万行数据中,抽取每个月中的任意一天的数据,即,2019-9-6/2019-9-7/2019-9-8…
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)
> set.seed(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