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

R语言For循环实现间隔跳行赋值失败,如何调整代码得到预期结果

代码问题说明

你在循环内部修改迭代变量i的操作不会生效:R的for循环每次迭代时,会自动从你指定的遍历序列1:10中按顺序取下一个值赋值给i,你在循环体中写的i = i + 2只会在当前轮次的循环体内生效,不会影响下一轮的i取值,所以最终所有行的V1列都被赋值为1。

调整方案

方案1:修改for循环的遍历序列

直接指定遍历所有奇数行即可,无需在循环内修改i的值:

test = as.data.frame(cbind(rep(NA,10), rep(NA,10)))

for (i in seq(1, 10, 2)){ 
  test[i,1] = 1 
} 

方案2:使用R向量化操作(更高效,无需循环)

R支持直接按索引批量赋值,比for循环性能更好,尤其适合数据量较大的场景:

test = as.data.frame(cbind(rep(NA,10), rep(NA,10)))
test[seq(1, nrow(test), 2), 1] <- 1

两种方案都可以得到你期望的输出结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:24:04