双变量嵌套循环异常求助:实现变量按索引对应相加
解决对应索引元素相加的循环问题
你的问题出在使用了嵌套循环:外层循环遍历var1的每个元素,内层循环又遍历var2的所有元素,导致每个var1[i]都和所有var2[j]相加,最终得到16个结果,而非你需要的对应索引相加的4个结果。
方案1:修正循环结构
只需要单循环,用同一个索引i同时访问两个向量的对应位置即可:
var1 <- c(20,40,60,80) var2 <- c(20,29,33,34) for (i in 1:length(var1)) { print(var1[i] + var2[i]) }
运行后会输出你期望的结果:
[1] 40 [1] 69 [1] 93 [1] 114
方案2:利用R的向量运算特性(更推荐)
R是向量型编程语言,当两个长度相同的向量直接相加时,会自动按索引对应元素相加,无需循环,代码更简洁高效:
var1 <- c(20,40,60,80) var2 <- c(20,29,33,34) # 直接输出相加结果 var1 + var2 # 输出:[1] 40 69 93 114 # 如果需要逐个打印结果 lapply(var1 + var2, print)
内容的提问来源于stack exchange,提问作者hmnoidk
相关产品推荐
相关产品推荐

