Как правильно написать двойной цикл for
в R?
Например, в C я бы сделал
int i, j;
for (i = 1; i < 6; i++) {
for (j=i; j <= 3; j++) {
printf("%i,%i\n",i,j);
}
// Do more operations for i > 3...
}
который будет генерировать (искусственную) последовательность:
1,1
1,2
1,3
2,2
2,3
3,3
В R вы не получаете такого же поведения, когда пишете
for (i in 1:6) {
for (j in i:3) {
print(paste(i,j,sep=","))
}
}
поэтому я был вынужден делать что-то вроде
for (i in 1:6) {
j <- i
while (j <= 3) {
print(paste(i,j,sep=","))
j <- j+1
}
}
Есть ли способ лучше?
Как упомянул Шейн, возможно, мне следует пояснить: меня особенно интересует стиль кода, соответствующий математике, чтобы ученикам было легче его понять. Кажется, что ученикам удобнее всего for
петель.
В частности, я хочу, чтобы мои студенты смоделировали модель рынка LIBOR. Динамика форвардного курса моделируется при той же вероятностной мере. Таким образом, для каждого временного шага и каждой скорости движения необходимо рассчитать и добавить соответствующую поправку на дрейф \mu_i.