如何从 R 中的嵌套 for 循环创建向量?
How to create vector from nested for loops in R?
我可以知道是否有办法从这个嵌套的 for 循环中将结果作为向量打印出来吗?
for(i in 0:3){
for(j in 1:3){
print(0.03*(i-1)+exp(-j))
}
}
既然你想把它打印成一个矢量,我想你只想在 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 矩阵而不是向量
你是这个意思吗?
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 是矢量化的,因此对于像这样的简单任务,无需使用循环。
保持您的格式完整且不使用 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
我可以知道是否有办法从这个嵌套的 for 循环中将结果作为向量打印出来吗?
for(i in 0:3){
for(j in 1:3){
print(0.03*(i-1)+exp(-j))
}
}
既然你想把它打印成一个矢量,我想你只想在 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 矩阵而不是向量
你是这个意思吗?
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 是矢量化的,因此对于像这样的简单任务,无需使用循环。
保持您的格式完整且不使用 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