An Introduction to R为例

xc <- split(x, ind)
yc <- split(y, ind)
for (i in 1:length(yc)) {
    plot(xc[[i]], yc[[i]])
    abline(lsfit(xc[[i]], yc[[i]]))
}

似乎for(i in 1:length(yc)) { ...是在需要对当前索引进行处理的情况下用于遍历列表或向量的惯用法。但是,这在空列表的情况下会中断,因为1:0不是空向量。当您不能保证非空列表时,我应该使用什么成语来遍历列表/向量索引?我在想if(length(yc)) for(i in 1:length(yc)) { ...,但是有更好的方法吗?

最佳答案

您正在寻找seq_along

> seq_along(as.list(1:2))
[1] 1 2
> seq_along(list())
integer(0)

关于r - 循环成语有危险吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7275159/

10-12 17:14