R programlama dili ile çalışıyorum. Aşağıdakileri gerçekleştiren bir döngü oluşturmaya çalışıyorum :
Adım 1: Hem "a" hem de "b" 12'den büyük olana kadar iki rasgele sayı "a" ve "b" üretmeye devam edin
Adım 2: 1. Adım tamamlanana kadar kaç rasgele sayı üretilmesi gerektiğini takip edin
Adım 3: Adım 1 ve Adım 2'yi 100 kez tekrarlayın
Bir koşul karşılanana kadar rasgele sayılar üretmeye nasıl devam edeceğimi bilmediğimden, koşulun karşılandığını umarak büyük miktarda rasgele sayı üretmeye çalıştım (muhtemelen bunu yazmanın daha iyi bir yolu vardır):
results <- list()
for (i in 1:100){
# do until break
repeat {
# repeat many random numbers
a = rnorm(10000,10,1)
b = rnorm(10000,10,1)
# does any pair meet the requirement
if (any(a > 12 & b > 12)) {
# put it in a data.frame
d_i = data.frame(a,b)
# end repeat
break
}
}
# select all rows until the first time the requirement is met
# it must be met, otherwise the loop would not have ended
d_i <- d_i[1:which(d_i$a > 10 & d_i$b > 10)[1], ]
# prep other variables and only keep last row (i.e. the row where the condition was met)
d_i$index = seq_len(nrow(d_i))
d_i$iteration = as.factor(i)
e_i = d_i[nrow(d_i),]
results[[i]] <- e_i
}
results_df <- do.call(rbind.data.frame, results)
Sorun: ne Zaman I bakmak sonuçları, ben fark bu döngü yanlış düşünüyor koşul için bir araya geldi mesela:
head(results_df)
a b index iteration
4 10.29053 10.56263 4 1
5 10.95308 10.32236 5 2
3 10.74808 10.50135 3 3
13 11.87705 10.75067 13 4
1 10.17850 10.58678 1 5
14 10.14741 11.07238 1 6
Örneğin, bu satırların her birinde-hem "a" hem de "b" 12'den küçüktür.
Kimse bunun ve lütfen birisi bu sorunu çözmek için nasıl bana göster neden biliyor mu?
Teşekkürler!