如何从R中嵌套的循环创建向量?



我可以知道是否有一种方法可以从这个嵌套的for循环中打印出结果作为向量吗?

for(i in 0:3){
for(j in 1:3){
print(0.03*(i-1)+exp(-j))
}
}

你是这个意思吗?

i <- rep(0:3, each=3)
j <- rep(1:3, times=4)
0.03*(i-1)+exp(-j)
[1] 0.33787944 0.10533528 0.01978707 0.36787944 0.13533528 0.04978707 0.39787944 0.16533528 0.07978707 0.42787944 0.19533528 0.10978707

R是向量化的,所以对于像这样的简单任务,不需要使用循环。

因为您想将其作为一个向量打印,所以我认为您只希望在for循环结束时打印一次。你所能做的就是创建一个空向量,并为每次迭代填充更多的数据,如下所示:

v <- c()
for(i in 0:3){
for(j in 1:3){
v <- c(v, 0.03*(i-1)+exp(-j))
}
}
print(v)

或者您可以使用rbind()而不是c()来创建12x1矩阵而不是向量

保持格式完整且不使用rbind:

output <- c()
k<- 1
for(i in 0:3){
for(j in 1:3){
(0.03*(i-1)+exp(-j))-> output[k]
k<- k+1
}
}

这将导致:

> output
[1] 0.33787944 0.10533528 0.01978707 0.36787944 0.13533528 0.04978707 0.39787944 0.16533528
[9] 0.07978707 0.42787944 0.19533528 0.10978707

最新更新