首页 > 解决方案 > 无法从 while 循环中生成结果

问题描述

我试图找到两个向量 v 和 g 的交集,这是我写的代码:

v <- c(1,2,3,4)
g <- c(3,4,5,99,0)

j = 1
new <- c()

for (i in 1:4){
  while (j < 5){
    if (v[i] == g[j])
      new <- c(new, v[i])
    j = j + 1
  }
}

如您所见,我已经创建了一个名为“new”的空向量,因为在 R 语言中,for 循环不存储运行该代码的结果。但我仍然没有得到“新”的结果。我想知道为什么?

标签: rfor-loopvectorwhile-loop

解决方案


正如Waldi所说,问题出在 j 重新初始化上。

尝试:

v <- c(1,2,3,4)
g <- c(3,4,5,99,0)

new <- c()

for (i in 1:4){
  j = 1  
  while (j < 5){
    print(paste('v=',v[i]))
    print(paste('g=',g[j]))
    print(v[i] == g[j])
    if (v[i] == g[j])
      new <- c(new, v[i])
    j = j + 1
  }
}

推荐阅读