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

如何用简洁高效的向量化方法将c(1,2,3)和c(4,5,6)转为list(1:4,2:5,3:6)?

解决方案

方法1:基础R mapply 实现

利用mapply对两个向量的对应元素逐一对齐调用:运算符,通过SIMPLIFY = FALSE强制返回列表结构:

x <- c(1,2,3)
y <- c(4,5,6)
result <- mapply(`:`, x, y, SIMPLIFY = FALSE)

输出结果与list(1:4, 2:5, 3:6)完全等价。

方法2:tidyverse 风格的 map2

如果习惯使用tidyverse工具链,purrr包的map2函数可以更简洁地完成双输入向量化映射,默认返回列表:

library(purrr)
x <- c(1,2,3)
y <- c(4,5,6)
result <- map2(x, y, `:`)

方法3:纯向量化构造(高效处理大规模数据)

通过计算区间长度、生成所有元素后拆分,完全避免循环类操作,适合大数据场景:

x <- c(1,2,3)
y <- c(4,5,6)
interval_lengths <- y - x + 1
all_elements <- rep(x, interval_lengths) + sequence(interval_lengths) - 1
result <- split(all_elements, rep(seq_along(x), interval_lengths))

内容的提问来源于stack exchange,提问作者ypa y yhm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:22:02