R语言中基于向量元素索引的for循环错误问题求解
问题分析与解决
你的代码问题出在循环内调用N[j]:
- 循环变量
j的取值是3:6,但向量N仅包含3个元素(索引对应1、2、3) - 当
j=3时,N[3]返回9;j>3时,超出N的索引范围,返回NA,这和你预期输出循环变量本身的值完全不符
修正后的代码
直接把N[j]替换为j即可:
N <- c(3,4,9) R <- c(0.12,0.66,0.34) P <- c(0.0024,0.0076,0.0028) for (j in N[1]:(N[1]+3)) { r <- R[1] p <- P[1] print(c(j, r, p)) }
输出结果
运行后会得到你预期的输出:
[1] 3.0000 0.1200 0.0024 [1] 4.0000 0.1200 0.0024 [1] 5.0000 0.1200 0.0024 [1] 6.0000 0.1200 0.0024
内容的提问来源于stack exchange,提问作者fredi96
相关产品推荐
相关产品推荐

