r - R - 为两个向量的元素创建随机组合
问题描述
a <- rnorm(10)
b <- sample(a,18,replace = T)
对于 的每个元素a
,我想从 vector 中随机分配一个值b
。这样我将对向量“a”的所有元素进行组合。它会是这样的:
combinations <- data.table(first=a ,second=sample(b,length(a)))
我真正想要的与 data.table 有点不同combinations
。我想获得一组组合,其中非行具有重复值。
编辑:combinations$first[i] 和combinations$second[i] 在上面的代码中可能相等。我想要的是让组合$first[i] 和combinations$second[i] 相等的情况变得不可能。
注意:我会为大型矢量执行此操作,因此它需要快速。
解决方案
您可以按如下方式按组采样
library(data.table)
set.seed(0L)
a <- LETTERS[1L:10L]
output <- data.table(first=a)[, .(second=sample(setdiff(a, first), .N)), by=.(first)]
如果需要随机行排序,您可以运行output[sample(.N)]
.
输出:
first second
1: A J
2: B D
3: C E
4: D G
5: E J
6: F B
7: G J
8: H J
9: I F
10: J F
推荐阅读
- python - 从PDF中提取带有坐标的表格
- angular - 无法列出惰性路由:Angular 更新后的未知模块 AppModule
- java - 如何使用批处理文件调用关闭处理程序?
- c# - 如何按行对二维数组进行排序?
- sql-server - Azure Windows 虚拟机上的 SQL 服务器错误 400 MismatchSqlVmAndVmName
- php - file_put_contents, file_append 如何写入内容 DESC
- c++ - 如何找到第二小的向量?
- c# - Xaml UI Designer 对于 .net core 3.0 中的 wpf 项目不活动
- javascript - Cookie 在同意之前设置
- microsoft-graph-api - 图表 - 是否有更简单/更快的方法来删除 SharePoint 列表中的所有项目?