You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何对向量的随机子集进行位置置换?

R语言实现向量随机子集的位置置换

需求说明

生成与原向量x完全一致的新向量x2,仅将x中随机选取的40%元素的位置进行随机交换。

示例:

  • 原向量x:1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  • 选中的随机子集位置对应元素:1, 4, 5, 8
  • 置换后x2:4, 2, 3, 8, 1, 6, 7, 5, 9, 10

实现代码

直接对向量的位置索引采样(避免原代码中元素重复导致的匹配错误),再对选中位置的元素做随机置换:

# 生成原向量
x <- seq(1, 10, 1)

# 采样40%的元素位置索引(floor确保取整)
subset_indices <- sample(length(x), size = floor(length(x)*0.4))

# 初始化x2为原向量的副本
x2 <- x

# 将选中位置的元素随机打乱后重新赋值
x2[subset_indices] <- sample(x2[subset_indices])

代码说明

  1. 索引采样:sample(length(x), size = floor(length(x)*0.4))直接从向量的位置索引中选取40%的位置,无论原向量是否包含重复元素,都能精准选中指定比例的元素位置,比原代码通过元素匹配选索引的方式更可靠。
  2. 子集置换:x2[subset_indices] <- sample(x2[subset_indices])仅对选中位置的元素进行随机打乱,其他位置元素保持与原向量一致,完全符合需求。

内容的提问来源于stack exchange,提问作者Buddhika Bellana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:39:52