R - Когда добавить перерыв - PullRequest
       1

R - Когда добавить перерыв

0 голосов
/ 27 октября 2018

У меня есть упражнение, которое сравнивает эффективность функций цикла.

У меня есть функция

banana <- function(x)
{d <- length(x)
xi <- x[1:(d-1)]
xnext <- x[2:d]

sum <- sum(100*(xnext-xi^2)^2 + (xi-1)^2)
y <- sum
return(y)
}

Я хочу переписать вышеприведенное, используя цикл for (или любой цикл). У меня пока что

for (i in x){
  n = length(x)
  y <- 100*(x[i+1]-x[i]^2)^2 +(x[i]-1)^2
  }

Я хочу, чтобы функция остановилась на n-1, и мне трудно знать, где добавить разрыв. Может кто-нибудь помочь?

Заранее спасибо,

Sean

1 Ответ

0 голосов
/ 27 октября 2018

На самом деле вам не нужно добавлять оператор break, вы можете просто зациклить все, кроме n th i.[-length(x)] удаляет последний элемент из последовательности.

y <- 0
for (i in seq_along(x)[-length(x)]) {
  y <- y + 100 * (x[i + 1] - x[i])^2 + (x[i] - 1)^2
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...