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

R嵌套for循环打印输出与存储向量结果不一致,如何存储打印结果?

问题原因

  • 你当前的代码没有把打印的sum(i+j)结果赋值给output向量,仅在循环中把i重复赋值给output[i],同一个i对应的两次内层j循环会覆盖同一个位置的取值,最终仅保留最后一次赋值的i,因此前4位为1、2、3、4,剩余位置保持初始的0值。
  • 两层循环共执行8次,但你只用i作为索引,无法覆盖8个存储位置。

解决方法

方法1:修改原有循环,增加索引计数器

x1<-c(1,2,3,4)
x2<-c(1,0)
output <- vector("numeric", 8)
# 新增计数器定位存储位置
idx <- 1

for (i in x1){
    for(j in x2){
       res <- sum(i+j)
       print(res)
       output[idx] <- res
       idx <- idx + 1
    }
}
output

运行后output的结果就是你打印的2 1 3 2 4 3 5 4。

方法2:使用R向量化操作替代循环,写法更简洁

x1<-c(1,2,3,4)
x2<-c(1,0)
output <- as.vector(t(outer(x1, x2, FUN = "+")))

直接得到目标向量,无需手动写循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:15:04