मैं काम कर रहा हूँ के साथ आर प्रोग्रामिंग भाषा है । मैं कोशिश कर रहा हूँ का निर्माण करने के लिए एक पाश करता है कि निम्न है :
चरण 1: रखने के लिए पैदा करने के दो यादृच्छिक संख्या "एक" और "बी" जब तक दोनों "एक" और "बी" कर रहे हैं, अधिक से अधिक से अधिक 12
चरण 2: ट्रैक कैसे कई यादृच्छिक संख्या था करने के लिए उत्पन्न किया जा सकता है जब तक यह लिया के लिए चरण 1 करने के लिए पूरा किया जा
चरण 3: दोहराएँ कदम 1 और कदम 2 100 बार
के बाद से मैं पता नहीं कैसे रखने के लिए यादृच्छिक संख्या पैदा करने के लिए जब तक एक शर्त पूरी कर रहा है, मैं करने की कोशिश की एक बड़ी राशि उत्पन्न यादृच्छिक संख्या की उम्मीद कर रहा है कि हालत से मुलाकात की है (शायद वहाँ एक बेहतर तरीका है लिखने के लिए):
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)
समस्या: जब मैं परिणाम को देखो, मैंने देखा है कि पाश गलत है पर विचार करने की हालत में होना करने के लिए मुलाकात की, उदाहरण के लिए:
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
उदाहरण के लिए, में से हर एक की ये पंक्तियाँ - दोनों "एक" और "बी" की तुलना में छोटे हैं 12.
क्या किसी को पता है क्यों यह हो रहा है और किसी को कृपया कर सकते हैं मुझे दिखाओ कैसे करने के लिए इस समस्या को ठीक?
धन्यवाद!