वेक्टर को यादृच्छिक कैसे करें


81

मैं एक वेक्टर में संख्याओं के क्रम को बेतरतीब ढंग से पुनर्गठित करना चाहूंगा, एक साधारण एक-लाइन कमांड में?

मेरे विशेष वेक्टर V में 1 से 10 तक प्रत्येक मान के लिए 150 प्रविष्टियाँ हैं:

V <- rep(1:10, each=150)

9
यहाँ उत्तर सही ढंग से आपकी ओर इंगित करते हैं sample। आप कुछ खतरों के लिए यहां चेतावनियों की जांच कर सकते हैं जो सिर्फ नमूने के रूप में उपयोग करना है।
दशोन

@ डासन: tl; ड्र जब तक वेक्टर की लंबाई को> 1 होने की गारंटी है, तब तक यह काम करता है।
smci

1
@smci tl; डॉ। यह खतरनाक है क्योंकि व्यक्ति इसके साथ सहज हो जाता है और तब जब यह अंत में लंबाई 1 का होता है तो यह आपको काटता है।
दस्सन

@ डासन मैंने पढ़ा था, लेकिन किसी ने अभी तक इसके base::sampleउपयोग को मजबूर करने के लिए संशोधित नहीं किया है seq_along। इसके अलावा, मैं यह नहीं देखता कि sample/sample.intकॉल कहाँ base::seq()है?
smci

जवाबों:


124

हाँ।

sample(V)

से ?sample:

For नमूने ’के लिए 'आकार’ के लिए डिफ़ॉल्ट पहले तर्क से निकाली गई वस्तुओं की संख्या है, ताकि (नमूना (x) ’' x’ (या: 1: x ’) के तत्वों का एक यादृच्छिक क्रमचय उत्पन्न करे।


मैं [११, २, २, २, २, २, ३, ४, ५, ५, ५, ५] को कैसे फेरबदल कर सकता हूं, जैसे कि मुझे कुछ ऐसा मिलता है: [५, ५, ३, ३, ३, ३, ३] 1, 1, 2, 4, 4, 4]? ऐसा है कि प्रत्येक तत्व बेतरतीब ढंग से बदल सकता है, लेकिन प्रत्येक तत्व की संख्या को स्थिर रखने के साथ?
3

2
@ रूट: यह पहले से ही आप क्या चाहते हैं; करने sizeके लिए sampleचूक का तर्क size <- length(x)। (ऐसा sampleकरने वाले कोड को देखने के लिए टाइप करें।)
smci

हाँ! धन्यवाद!
रोटेल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.