a<-c(1,2,0,7,5)
कुछ भाषाओं में एक पिकर-फ़ंक्शन है - a
से एक यादृच्छिक संख्या चुनें - आर में कैसे?आर की सूची में यादृच्छिक तत्व का चयन करें?
a<-c(1,2,0,7,5)
कुछ भाषाओं में एक पिकर-फ़ंक्शन है - a
से एक यादृच्छिक संख्या चुनें - आर में कैसे?आर की सूची में यादृच्छिक तत्व का चयन करें?
# Sample from the vector 'a' 1 element.
sample(a, 1)
नमूना से सावधान रहें! यदि 'ए' की लंबाई 1 है, तो संख्यात्मक (is.numeric के अर्थ में) और 'a'> = 1 है, नमूना के माध्यम से नमूनाकरण' 1: ए' से होता है।ध्यान दें कि 'सुविधा' की लंबाई अलग होने पर इस सुविधा सुविधा से अवांछित व्यवहार हो सकता है। – pomber
पढ़ें this आर
http://blog.revolutionanalytics.com/2009/02/how-to-choose-a-random-number-in-r.html
में यादृच्छिक संख्या पैदा करने के बारे में लेखआप इस मामले
sample(a, 1)
दूसरा विशेषता दिखा रहा है कि आप केवल प्राप्त करना चाहते हैं में sample
उपयोग कर सकते हैं एक यादृच्छिक संख्या। कुछ श्रेणी runif
फ़ंक्शन के बीच संख्या उत्पन्न करने के लिए उपयोगी है। तथापि
sample(a,1)
, अगर आप इस प्रक्रिया को कई बार दोहराना चाहते हैं, मान लीजिए कि आप एक पासा फेंकने की नकल करना चाहते हैं, तो आप जोड़ने की जरूरत:
ऊपर जवाब तकनीकी रूप से सही हैं
a<-c(1,2,3,4,5,6)
sample(a, 12, replace=TRUE)
उम्मीद है कि यह मदद करता है।
नमूना का उपयोग करते समय सावधान रहें!
sample(a, 1)
अपने उदाहरण में वेक्टर के लिए अच्छा काम करता है, लेकिन जब वेक्टर लंबाई 1 यह अवांछित व्यवहार को जन्म दे सकती है, यह नमूने के लिए वेक्टर 1:a
का प्रयोग करेंगे।
तो यदि आप एक अलग लंबाई वेक्टर से यादृच्छिक आइटम चुनने की कोशिश कर रहे हैं, तो लंबाई 1 के मामले की जांच करें!
sampleWithoutSurprises <- function(x) {
if (length(x) <= 1) {
return(x)
} else {
return(sample(x,1))
}
}
उन्हें इस बग को ठीक करना चाहिए। – skan
रनिफ़ का उपयोग करके वेक्टर से किसी आइटम का चयन करना एक विकल्प है। यानी
a <- c(1,2,0,7,5)
a[runif(1,1,6)]
चलें कहते हैं कि तुम एक समारोह है कि एक हर बार चलाया जाता है (उदाहरण के लिए एक सिमुलेशन में उपयोगी) उठाता है चाहता हूँ। तो
a <- c(1,2,0,7,5)
sample_fun_a <- function() sample(a, 1)
runif_fun_a <- function() a[runif(1,1,6)]
microbenchmark::microbenchmark(sample_fun_a(),
runif_fun_a(),
times = 100000L)
इकाई: नैनोसेकंड
sample_fun_a() - 4665
runif_fun_a() - 1400
runif इस उदाहरण में तेज हो रहा है।
यह विधि आपके वेक्टर की लम्बाई होने पर त्रुटि उत्पन्न नहीं करती है, और यह आसान है।
a[sample(1:length(a),1)]
एक तरफ नोट: आपको लगता है कि आप आर के लिए नए हैं और शायद कुछ प्रारंभिक सामग्री को पढ़ना चाहिए। http://stackoverflow.com/questions/420296/what-are-some-good-books-web-resources-and-projects-for-learning-r – Dason