Мне нужен цикл, который может добавить значение к моему начальному значению только для некоторых итераций - PullRequest
0 голосов
/ 26 марта 2019

Мне нужен цикл из 32 лет, который проверит, является ли текущий год (скажем, кратным 4), и, если это так, добавит значение к моей процентной стоимости

Я пытался использовать ifelse,но я не думаю, что я действительно понимаю, как работает функция.

result <- rbind(c(t,Na))
Na <- 10
for (t in 1:32){
  ifelse(t=c(4,8,12,16,20,24,28,32),(Na <- Na+((t/4)*20)),(Na <- Na))
  result <- rbind(result,round(c(t,Na),2))
}

1 Ответ

0 голосов
/ 26 марта 2019

Если вы не захотите использовать цикл for, вы можете пойти так (не проверено):

t <- 1:32
idx <- which(t %% 4==0)
Na <- rep(10,32)
Na[idx] <- Na[idx]+20*t[idx]/4
result <- cbind(t, cumsum(Na))

Вторая строка фильтрует индексы тех компонентов, которые нуждаются в особой обработке. Третья строка создает вектор длиной 32 со всеми компонентами, равными 10. В четвертой строке применяется специальная обработка. В последней строке используется cumsum для расчета совокупной суммы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...