Я хочу перебрать диапазон чисел из 1:n
, когда n
- длина вектора v
в R. Обычно я бы использовал синтаксис for (i in 1:length(v))
, но это не работает, когда n == 0
.
Как идиоматично сделать этот цикл? На данный момент я делаю следующее, но это кажется немного некрасивым:
# This is in my standard library
rng <- function(n)seq(from=1, to=n, length.out=n)
# Now when I come to the for loop:
for(i in rng(length(v))){
print(paste("I ate", i, "kg of brocolli today"))
}
И да, я знаю, что лучше векторизовать, но бывают ситуации, когда векторизация невозможна или потребует столько дополнительной работы, что это намного сложнее чтобы прочитать код.