在 R 中输出并保存嵌套循环的结果
Output and save results of a nested loop in R
我正在使用下面的脚本对数据 w
循环三次,当我使用 print 显示它们时它会输出三个结果。我正在尝试将结果输出到分配的变量 my_vector(j)
但仅显示最后一次迭代结果。如何将每次迭代的结果保存在数组中?
DU<-c(70,85,95)
a<-1-sqrt(3)*((100-DU)/130)
my_vector = c()
w<-c(0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5)
w_i<-1/w
for (i in 1:length(DU)){
for (j in 1:length(w)){
if (w_i[j] > 2-a[i]) {
E[j]<-1
} else if (w_i[j]<2-a[i]) {
E[j]<-((a[i]*w[j]+1)^2-4*w[j])/(4*(a[i]-1)*w[j]^2)
} else {
E[j]=w_i[j]
}
my_vector[j]<-(E[j])
print(E[j])
}
my_vector[j]<-(E[j])
}
因为当你调用 my_vector[j]<-(E[j])
时,j
只取 1 到 length(w)
之间的值,所以对于循环的每次迭代 i
你重写所有内容(每次您更改了 i
的值,然后 j
重新变为 1).
替换为:
my_vector[j + length(w)*(i-1)]<-(E[j])
另外,我认为你应该删除最后一行
my_vector[j]<-(E[j])
因为它在 j
的循环之外(或者至少我不明白为什么它在这里)
我正在使用下面的脚本对数据 w
循环三次,当我使用 print 显示它们时它会输出三个结果。我正在尝试将结果输出到分配的变量 my_vector(j)
但仅显示最后一次迭代结果。如何将每次迭代的结果保存在数组中?
DU<-c(70,85,95)
a<-1-sqrt(3)*((100-DU)/130)
my_vector = c()
w<-c(0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5)
w_i<-1/w
for (i in 1:length(DU)){
for (j in 1:length(w)){
if (w_i[j] > 2-a[i]) {
E[j]<-1
} else if (w_i[j]<2-a[i]) {
E[j]<-((a[i]*w[j]+1)^2-4*w[j])/(4*(a[i]-1)*w[j]^2)
} else {
E[j]=w_i[j]
}
my_vector[j]<-(E[j])
print(E[j])
}
my_vector[j]<-(E[j])
}
因为当你调用 my_vector[j]<-(E[j])
时,j
只取 1 到 length(w)
之间的值,所以对于循环的每次迭代 i
你重写所有内容(每次您更改了 i
的值,然后 j
重新变为 1).
替换为:
my_vector[j + length(w)*(i-1)]<-(E[j])
另外,我认为你应该删除最后一行
my_vector[j]<-(E[j])
因为它在 j
的循环之外(或者至少我不明白为什么它在这里)