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

如何用apply函数填充NA矩阵?求简化R语言重复赋值代码方案

简化R语言矩阵填充代码的方案

首先,用apply可以实现一行代码,但并非最优选择,因为apply需要先创建空矩阵再逐列替换,代码如下:

tmp <- t(apply(matrix(NA, 10, 10), 2, function(x) sample(1:500, 10)))

更简洁高效的替代方案有两种:

方案1:使用replicate(与原代码逻辑完全一致)

这是最贴合原需求的简化方式,replicate会重复执行指定表达式n次,并自动组合成矩阵:

tmp <- replicate(10, sample(1:500, 10))

该代码会生成10个独立的、从1-500无放回抽取的10元素向量,最终组合为10行10列的矩阵,和原代码逐列赋值的逻辑完全一致。

方案2:直接用matrix生成(全局无放回场景适用)

如果允许从1-500中无放回抽取100个元素再构造矩阵(和原代码逐列独立抽取的逻辑不同),可以用一行代码直接生成:

tmp <- matrix(sample(1:500, 100, replace = FALSE), nrow = 10)

注意:若需要每列独立抽取(和原代码一致),不要使用此方案,因为它是全局一次性抽取,列与列之间的元素不会重复。

内容的提问来源于stack exchange,提问作者M.C. Park

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:36:20