Циклы в R -Нужно использовать индекс, чтобы избежать & #39;for& #39;?

Я знаю, что в R не рекомендуется использовать цикл for, потому что он не имеет улучшенной производительности. Почти для всех случаев существует функция семейства *apply, решающая наши задачи.

Однако я столкнулся с ситуацией, когда не вижу обходного пути.

Мне нужно вычислить процентную вариацию для последовательных значений.:

pv[1] <- 0
for(i in 2:length(x)) {
  pv[i] <- (x[i] - x[i-1])/x[i-1]
}

Итак, как видите, я должен использовать как элемент x[i], так и элемент x[i-1]. Используя функции *apply, я просто вижу, как использовать x[i]. Можно ли как-то избежать циклов for?

14
задан João Daniel 6 May 2012 в 01:17
поделиться