我有以下四个数字集:
A=[1,207];
B=[208,386];
C=[387,486];
D=[487,586].
Run Code Online (Sandbox Code Playgroud)
我需要在1到586之间生成20000个随机数,其中生成的数字属于A的概率是1/2,而B,C,D是1/6.
用哪种方式我可以用R做到这一点?
Pau*_*tra 15
您可以直接使用sample,更具体地说是probs参数.只需将所有586个数字的概率除以.每个类别A得到的0.5/207重量等.
A <- 1:207
B <- 208:386
C <- 387:486
D <- 487:586
L <- sapply(list(A, B, C, D), length)
x <- sample(c(A, B, C, D),
size = 20000,
prob = rep(c(1/2, 1/6, 1/6, 1/6) / L, L),
replace = TRUE)
Run Code Online (Sandbox Code Playgroud)