r - 在具有潜在概率假设的向量中生成属于不同组的随机项目对
问题描述
假设我有一个向量id <- c(1:10)
,并且我想创建来自该向量的随机对,但限制是每个配对必须是唯一的,并且每个数字/id 不能与自身配对。喜欢:
1-2,2-4,3-7 等等。
我在这个 stackoverflow 答案中找到了解决这个问题的方法:
pairOff <- function(x) { x <- sample(x) # to get first column into random order M <- matrix(c(x, x[(seq_along(x) + sample(seq_along(x)[- (length(x) - 1)], 1)) %% length(x) + 1]), ncol=2) return(M) }
返回例如:
[,1] [,2]
[1,] 1 10
[2,] 10 4
[3,] 4 9
[4,] 9 5
[5,] 5 2
[6,] 2 8
[7,] 8 6
[8,] 6 3
[9,] 3 7
[10,] 7 1
现在假设每个 id 属于一个组(1 或 2,但也可以 > 2):
group_ID <- c(1,1,1,1,1,2,2,2,2,2)
并且每个 id 都有可能与来自同一组或另一组的另一个 id 配对:
p_owngroup <- 0.7
p_othergroup <- 1 - p_owngroup_ID
在 pairOff 函数中,概率始终为 p = 0.5。
我的问题:如何创建一个函数来创建唯一配对(不允许与自己配对,并且每个 id 只有一个唯一的伙伴),其中每个 id 与来自同一组的 id 配对的基本概率是 p_owngroup 和与来自不同组的 id 配对是 p_othergroup?
解决方案
推荐阅读
- swift - 在 Swift 中显示来自 Parse 的图像
- javascript - UrlSearchParams.get() 不适用于重写的 url
- php - Symfony 3.4 表单小部件以捆绑名称为前缀
- jupyter-notebook - Jupyter Notebook 有文件重命名挂钩吗?
- c++ - 必要时违反组合优于继承可以吗?
- javascript - 应该如何为 HTML 画布旋转鼠标事件?
- arrays - 为什么将数组作为道具传递时会转换为对象?
- python-3.x - 类对象名称未定义
- amazon-web-services - 模板资源块中未解决的资源依赖项 [arn:aws:s3:::alberto313131/*]
- json - 实时数据搜索问题,如何通知用户更具体的搜索