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

在R中一次性创建多个长度自定义的全0向量的实现方法

R 生成不同长度全0向量的实现方案

错误原因说明

  1. 原for循环问题:每次迭代都将已有differences对象和新生成的向量打包为新的两层列表,迭代次数越多嵌套层级越深,无法直接访问单个向量。
  2. 原lapply问题:lapply第一个参数是需要遍历的对象,你传入0只会执行1次,还将整个kj向量传给rep的times参数,不符合参数要求自然报错。

最优实现(lapply一行代码)

直接遍历kj的每个长度值,生成对应长度的全0向量,返回的就是标准列表结构,可直接用[[i]]访问单个向量,[i]访问子列表:

differences <- lapply(kj, rep, x = 0)

修正后的for循环实现

如果偏好for循环写法,提前初始化固定长度的空列表即可,效率比动态扩展更高:

# 初始化和kj长度一致的空列表
differences <- vector("list", length(kj))
for (i in seq_along(kj)) {
  differences[[i]] <- rep(0, kj[i])
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 23:00:03