思想是,假设数据有行,且可十等分。 随机给出均匀分布,, 给这个数据表打上标签,按照标签分类, 实现随机分类十组。
实现的过程如下。
使用runif函数。
runif(n, min = 1, max = 10)
定义好最大值和最小值。
表示样本模拟的大小。
library(tidyverse)
## Warning: 程辑包'tidyverse'是用R版本4.1.3 来建造的
## Warning: 程辑包'forcats'是用R版本4.1.3 来建造的
## -- Attaching core tidyverse packages ------------------------ tidyverse 2.0.0 --
## v dplyr 1.0.7 v readr 2.1.1
## v forcats 1.0.0 v stringr 1.4.0
## v ggplot2 3.3.5 v tibble 3.1.6
## v lubridate 1.8.0 v tidyr 1.1.4
## v purrr 0.3.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## i Use the [conflicted package](http://conflicted.r-lib.org/) to force all conflicts to become errors
runif(10000, min = 1, max = 11) %>% as.integer() %>% table()/100
## .
## 1 2 3 4 5 6 7 8 9 10
## 10.01 9.73 9.89 9.89 10.26 9.69 10.07 10.03 10.45 9.98
因为runif的bug,导致数据需要取整,as.integer(),
table()证明分布应该是均匀的。
因此把这个变量加入到数据表,
runif(10000, min = 1, max = 11) %>% as.integer(),作为一个变量,
然后dplyr::group_by(这个变量)就可以分组了。