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

R语言无需for循环实现向量元素追加后续两个连续数的向量化方法

R语言向量化实现元素后追加连续整数的方案

首先给出不需要加载任何第三方包的基础R实现方法,代码如下:

# 定义原向量
v <- c(238,1002,569,432,6,1284)
# 向量化操作得到目标结果
result <- rep(v, each = 3) + 0:2

运行后输出的result和你给出的预期结果完全一致。

实现逻辑说明

  • rep(v, each = 3) 会将原向量的每个元素依次重复3次,输出中间结果为 238,238,238,1002,1002,1002,569,569,569,432,432,432,6,6,6,1284,1284,1284
  • R支持向量运算的自动循环补齐规则,长度为18的中间向量和长度为3的0:2相加时,0:2会自动循环6次,依次给每组重复的三个元素加0、1、2,正好得到你需要的连续数值序列。

其他可选实现方案

如果后续需要扩展更复杂的序列生成规则,也可以用outer函数实现:

result <- as.vector(t(outer(v, 0:2, FUN = `+`)))

该方案的逻辑是先生成一个6行3列的矩阵,每行对应原向量一个元素加0、1、2的结果,转置后拉伸为向量,输出结果和第一种方法完全一致。

性能说明

以上两种向量化方法的运行效率远高于for循环实现,当原向量长度达到百万级时,性能差距可以达到数百倍,非常适合处理大规模数据场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:45:02