单循环

时间:2018-02-08 04:47:44

标签: r for-loop

我想创建一个for循环,而不是使用嵌套来解决这个问题。

必需:使用单个 for循环填充带有loopvec1和loopvec2的倍数的Matrix(foo)。

到目前为止,我只能使用嵌套 for循环来解决它。这是我的代码:

loopvec1 <- 5:7
loopvec2 <- 9:6

foo <- matrix(NA, length(loopvec1), length(loopvec2))

for (i in 1:length(loopvec1)) {
   for (j in 1:length(loopvec2)) {
   foo[i, j] <- loopvec1[i] * loopvec2[j]
  }
}

foo

输出(foo):

      [,1] [,2] [,3] [,4]
[1,]   45   40   35   30
[2,]   54   48   42   36
[3,]   63   56   49   42

我是否知道如何仅通过使用单个 for循环来获得相同的结果?

编辑:我知道还有另外一个功能&#34;外部&#34;产生相同结果(导致此问题被标记为重复),但是,我坚持的问题要求我使用单个 for 循环而不是任何其他函数。

1 个答案:

答案 0 :(得分:0)

试试这个:

loopvec1 <- 5:7
loopvec2 <- 9:6

foo <- matrix(NA, length(loopvec1), length(loopvec2))

for (i in 1:length(loopvec1)) {
      foo[i,] <- loopvec1[i] * loopvec2
  }


foo

结果:

> foo
      [,1] [,2] [,3] [,4]
[1,]   45   40   35   30
[2,]   54   48   42   36
[3,]   63   56   49   42