r - 满足条件的样本对

标签 r duplicates conditional-statements sample

我有这个问题,我无法弄清楚。我有 500 个来自均匀分布的 A 组样本。 B 组有 500 个来自另一个均匀分布的样本。

我将从 A 中选择一个值 a,并从 B 中选择另一个值 b。 我想让“a 总是小于 b”。我想要 500 双,不重复。

A <- runif(500, min = 19, max= 23)
B <- runif(500, min = 22, max= 26)

如何获得 500 对 (a,b),其中 a < b,且不重复?

<小时/>

编辑:

抱歉,我需要澄清我的问题。 A组和B组一旦设定,就不会改变。应从固定的 A 和 B 中选择 500 对。在每对中,a < b。

我想看到像蒙特卡罗那样的“随机”效果。所以,我认为仅仅排序并不能解决这个问题。

最佳答案

由于 A 和 B 的范围不同,我们可以对集合进行排序,并检查排序后的向量是否产生满足所需条件的对。

C <- sort(A)
D <- sort(B)

现在我们需要检查 C[i] 是否对, D[i]满足条件C[i] < D[i]对于所有人i :

> !!sum(C > D)
#[1] FALSE

在这种情况下,我们很幸运:所有对都满足必要条件。如果此测试返回 TRUE ,我们可以尝试生成新的随机数集。

现在我们有对 C[i] , D[i]条目选自AB ,分别使得 C[i] < D[i]对于 i 的所有 500 个值。

float 中的重复实际上是不可能的。

关于r - 满足条件的样本对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32509949/

相关文章:

linux - 如何在 linux 中打开 R 图形窗口?

r - 将算术运算符视为函数

从同一行中指示的列返回值

r - 创建一个无需字符串引号即可创建向量的函数

python - 两个数组上的 Numpy 条件算术运算

sql - sql查询找到重复的记录

java - 计算唯一元素的数量

sql - 在 Access 2007 中使用条件从查询中删除重复项

Java:如何在for循环中将try-catch作为条件?

javascript if 条件检查带换行符的字符串,即\n