【发布时间】:2018-03-16 05:47:27
【问题描述】:
我正在研究蒙特卡罗模拟类型的问题,需要生成一个包含重复随机数的向量,其中匹配的数字按随机顺序分组在一起。
用一个例子更容易解释。如果我有: 1、3、7、12、1、3、7、12、1、3、7、12
我希望它排序为: 7, 7, 7, 3, 3, 3, 12, 12, 12, 1, 1, 1(或匹配数字的组以任何顺序但升序/降序排列)。
我需要随机顺序的原因是因为我的 MC 模拟是针对 2 个变量的,所以如果两个变量都按顺序排列,它们就不会独立变化。
我已经知道了:
sort(rep(runif(50,1,10),10), decreasing = FALSE)
生成 50 个介于 1 和 10 之间的随机数,每重复 10 次,然后按升序对 50 组 10 个匹配的随机数进行排序(或者如果我将“FALSE”更改为“TRUE”,则很容易降序) .我只是想不出以随机顺序获得 50 组 10 个匹配数字的最后一步。有人可以帮忙吗?
【问题讨论】:
-
如何让一个变量按递增顺序,另一个按随机顺序,然后在获取摘要时按两个变量分组?
-
升序降序是什么意思?
-
y=by(x,x,FUN=I); unlist(y[sample(length(y),length(y))]) -
unlist((a<-split(x,x))[sample(b<-length(a),b)]) -
@hpsejo626 - 是的,我认为这很好。在我的脑海中,两个变量是随机排序还是一个随机,一个升序/降序都无关紧要。只要他们是独立的。
标签: r sorting random montecarlo