我的问题:我有一个嵌套在for循环中的if else语句,并希望保存每次迭代的值。
例如,对于一些简单的数据,我尝试的是:
s <- c(4, 8, 3) #a string with some values
l <- list() #the list where i want the output to be saved in
for (n in 1:length(s)) {
if (n==1) {
b1 <- 1:s[n]
print(b1)
l <- c(b1)}
else {
b2 <- (s[n-1]:s[n])
print(b2)
l <- c(b1=b1, b2=b2)}}
print()输出是我要保存的所有矢量
[1] 1 2 3 4
[1] 4 5 6 7 8
[1] 8 7 6 5 4 3
但是我只存储第一个向量(来自if语句)和else语句的最后一次迭代:
b11 b12 b13 b14 b21 b22 b23 b24 b25 b26
1 2 3 4 8 7 6 5 4 3
如何保存每次迭代?我已经尝试了几个小时并且无处可去,所以非常感谢任何帮助!
答案 0 :(得分:1)
试试这个
s <- c(4, 8, 3) #a string with some values
l <- list() #the list where i want the output to be saved in
for (n in 1:length(s)) {
if (n==1) {
b1 <- 1:s[n]
print(b1)
l[[length(l)+1]] <- c(b1)
}
else {
b2 <- (s[n-1]:s[n])
print(b2)
l[[length(l)+1]] <- b2
}
}
# [[1]]
# [1] 1 2 3 4
# [[2]]
# [1] 4 5 6 7 8
# [[3]]
# [1] 8 7 6 5 4 3