我想创建一个 for 循环,其中 seq 是数组的元素。
就像我有一个这样的数组:
int <- array(c(30,60,150,300,450,1500))
我希望第一个 j 是 30,第二个是 60 ...等等。
但是当我明显尝试这个时:
for (j in int)
这不起作用。
我该如何解决这个问题?
最佳答案
我们可以使用嵌入
m1 <- embed(c(int, int), length(int))[seq_along(int),]
m1[lower.tri(m1)] <- NA
lapply(asplit(m1, 1), function(x) rev(x[!is.na(x)]))
#[[1]]
#[1] 30 60 150 300 450 1500
#[[2]]
#[1] 60 150 300 450 1500
#[[3]]
#[1] 150 300 450 1500
#[[4]]
#[1] 300 450 1500
#[[5]]
#[1] 450 1500
#[[6]]
#[1] 1500
或者使用for
循环
out <- vector('list', length(int))
for(i in seq_along(int)) out[[i]] <- if(i == 1) int else int[-seq(i -1)]
关于r - 如何将 for 循环与特殊 seq 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66390340/