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

在R语言矩阵中随机复制任意数量行的实现方法

R语言随机复制矩阵行(无需指定sample size参数)

嘿,这个需求我经常碰到!给你两个超简便的实现思路,完全不用手动指定sample()的size参数,全程随机化:

方法一:随机生成总行数,随机抽样行(允许重复)

这种方式会先随机确定最终矩阵的总行数(基于原矩阵行数的随机范围),再随机抽取行(重复抽取就相当于复制行):

# 先创建一个示例矩阵
x <- matrix(1:12, nrow = 4)

# 随机确定目标矩阵的总行数,这里选原行数的1到3倍区间,你可以按需调整
random_total_rows <- sample(nrow(x):(3*nrow(x)), 1)

# 随机抽取行索引(replace=TRUE允许重复抽取,实现行复制)
result_matrix <- x[sample(nrow(x), random_total_rows, replace = TRUE), ]

解释:random_total_rows会自动生成一个随机数,不用你手动输入;sample(..., replace=TRUE)会随机挑选行,重复选中的行就会被复制到结果里。

方法二:为每行随机指定复制次数

如果你想让每行的复制次数都随机(比如有的行复制1次,有的复制3次),可以用rep()配合随机生成的重复次数:

# 还是用刚才的示例矩阵
x <- matrix(1:12, nrow = 4)

# 为每行生成1到3次的随机重复次数,范围可以自己改
row_repeats <- sample(1:3, nrow(x), replace = TRUE)

# 按重复次数复制对应行
result_matrix <- x[rep(1:nrow(x), row_repeats), ]

解释:row_repeats是一个和原矩阵行数等长的向量,每个元素对应该行要复制的次数;rep()会把行索引按重复次数展开,最后提取行就得到了随机复制后的矩阵。

这两种方法都完全满足你“不用指定sample()的size参数”的需求,你可以根据实际场景选更合适的一种~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:26:45