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

如何为含11个元素的向量无重复随机分配1-11的数字?

解决方法

你的代码出现重复随机数是因为用group_by(numbers)后,每个分组都会单独执行sample(11,1)——相当于多次从1-11里抽取单个数字,重复是必然的。

要实现给11个元素分配1到11之间不重复的随机数,直接生成1-11的随机排列即可,不需要分组操作:

df %>% 
  mutate(random = sample(1:11))

如果你的numbers列存在重复值,且需要同一numbers对应同一个唯一随机数(所有随机数仍保持不重复),可以先对唯一值生成随机序列,再关联回原数据:

# 提取唯一的numbers并分配不重复随机数
unique_numbers <- df %>% 
  distinct(numbers) %>% 
  mutate(random = sample(1:nrow(.)))

# 关联回原数据集
df <- df %>% 
  left_join(unique_numbers, by = "numbers")

内容的提问来源于stack exchange,提问作者Jessica MacDonald

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:27:33