我想创建一个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 循环而不是任何其他函数。
答案 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