Làm thế nào để bạn viết đúng vòng lặp for
đôi trong R?Double Đối với vòng lặp trong R
Ví dụ, trong CI sẽ làm
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...
}
đó sẽ tạo ra (nhân tạo) trình tự:
1,1
1,2
1,3
2,2
2,3
3,3
Trong R bạn không nhận được các hành vi tương tự khi bạn viết
for (i in 1:6) {
for (j in i:3) {
print(paste(i,j,sep=","))
}
}
vì vậy tôi đã bị giảm làm một số việc như
for (i in 1:6) {
j <- i
while (j <= 3) {
print(paste(i,j,sep=","))
j <- j+1
}
}
Có cách nào tốt hơn không?
Như Shane đã đề cập, có lẽ tôi nên làm rõ điều này: Tôi đặc biệt quan tâm đến kiểu mã phù hợp với toán học để giúp sinh viên dễ hiểu hơn. Có vẻ như các sinh viên cảm thấy thoải mái nhất với các vòng for
.
Cụ thể, tôi muốn học sinh của mình mô phỏng LIBOR market model. Các động thái của tốc độ chuyển tiếp sẽ được mô phỏng theo cùng một thước đo xác suất. Như vậy, đối với mỗi bước thời gian và mỗi tỷ lệ chuyển tiếp , hiệu chỉnh độ lệch thích hợp \ mu_i cần được tính toán và bổ sung.
Ý bạn là tôi trong 1: (2 * N). Nếu không, chỉ số i của bạn sẽ chỉ nhận giá trị N và 2 * N. –
Vâng, cảm ơn. Tôi đã lấy giá trị ngay bây giờ để làm cho nó rõ ràng hơn. –
Bạn có thể làm cho mục tiêu của bạn rõ ràng hơn một chút: bạn đang cố gắng dạy R cho sinh viên biết C (ví dụ)? Có lẽ có nhiều cách hiệu quả để tạo chuỗi đó, nhưng có vẻ như bạn đặc biệt quan tâm đến() vòng lặp ... – Shane