दिलचस्प पोस्ट
सी # में एक ही फाइल के लिए दो पथ संदर्भ निर्धारित करने का सबसे अच्छा तरीका वक्रार (अधिकतम) हर जगह? मैं लगातार श्रेणियों पर समूह कैसे करूं? एमवीसी वीएस एन-स्तरीय वास्तुकला अवैध ब्लॉकस्केस अपवाद जब एईएस के साथ एक स्ट्रिंग एन्क्रिप्ट और डिक्रिप्ट करने का प्रयास करता है कॉल और कॉलविर्ट क्या जावा में रिवर्स लुकअप के साथ एक हैशमैप है? कोणीय फ़िल्टरों के लिए बहस पास करना रूबी के सेटर्स को कक्षा में "आत्म" योग्यता की आवश्यकता क्यों है? git रीसेट बनाम git रीसेट हेड कैसे एसएमएस भेजने के लिए प्रोग्राम है? आईओएस में कॉल इवेंट्स का पता लगा रहा है TypeError: 'अपरिभाषित' एक फ़ंक्शन नहीं है (मूल्यांकन '$ (दस्तावेज़)') कॉलम को सीएसवी विंडोज पॉवरशेल में जोड़ें सी # का उपयोग करते हुए एक टैब वर्ण को टेक्स्ट में डालना

डेटाफ़्रेम में नमूना यादृच्छिक पंक्तियां

मैं उपयुक्त फ़ंक्शन खोजने के लिए संघर्ष कर रहा हूं जो आर भाषा में किसी डेटा फ्रेम से प्रतिस्थापन के बिना एक निश्चित पंक्तियों की संख्या को वापस लाएगा? क्या कोई मेरी मदद कर सकता है?

Solutions Collecting From Web of "डेटाफ़्रेम में नमूना यादृच्छिक पंक्तियां"

पहले कुछ डेटा बनाएं:

> df = data.frame(matrix(rnorm(20), nrow=10)) > df X1 X2 1 0.7091409 -1.4061361 2 -1.1334614 -0.1973846 3 2.3343391 -0.4385071 4 -0.9040278 -0.6593677 5 0.4180331 -1.2592415 6 0.7572246 -0.5463655 7 -0.8996483 0.4231117 8 -1.0356774 -0.1640883 9 -0.3983045 0.7157506 10 -0.9060305 2.3234110 

फिर यादृच्छिक पर कुछ पंक्तियों का चयन करें:

 > df[sample(nrow(df), 3), ] X1 X2 9 -0.3983045 0.7157506 2 -1.1334614 -0.1973846 10 -0.9060305 2.3234110 

जॉन कोल्बी का उत्तर सही उत्तर है। हालांकि यदि आप एक dplyr उपयोगकर्ता हैं तो dplyr का उत्तर भी है:

 sample_n(df, 10) 

बेतरतीब ढंग से डेटाफ़्रेम से 10 पंक्तियाँ नमूने। यह sample.int कहता है, तो वास्तव में कम टाइपिंग के साथ एक ही उत्तर है (और मैट्र्रिटर के संदर्भ में उपयोग को आसान बनाता है क्योंकि डेटाफ्रेम पहली तर्क है)।

एक लिखें! जेसी के जवाब को लपेटते हुए मुझे:

 randomRows = function(df,n){ return(df[sample(nrow(df),n),]) } 

अब सबसे पहले अगर n <= nrow (df) और एक त्रुटि के साथ रोक रहा है, तो उसे जांचकर बेहतर बनाएं।

data.table पैकेज DT[sample(.N, M)] , डेटा तालिका DT से एम यादृच्छिक पंक्तियाँ नमूना

 library(data.table) set.seed(10) mtcars <- data.table(mtcars) mtcars[sample(.N, 6)] mpg cyl disp hp drat wt qsec vs am gear carb 1: 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 2: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 3: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 4: 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 5: 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 6: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2 

संपादित करें : यह उत्तर अब पुराना है, अद्यतन संस्करण देखें।

मेरे आर पैकेज में मैंने sample बढ़ा दिया sample ताकि यह अब डेटा फ्रेम के लिए अपेक्षित रूप से व्यवहार करता है:

 library(devtools); install_github('kimisc', 'krlmlr') library(kimisc) example(sample.data.frame) smpl..> set.seed(42) smpl..> sample(data.frame(a=c(1,2,3), b=c(4,5,6), row.names=c('a', 'b', 'c')), 10, replace=TRUE) ab c 3 6 c.1 3 6 a 1 4 c.2 3 6 b 2 5 b.1 2 5 c.3 3 6 a.1 1 4 b.2 2 5 c.4 3 6 

यह एक एस 3 जेनेरिक पद्धति का sample बनाकर और फ़ंक्शन में आवश्यक (तुच्छ) की कार्यक्षमता प्रदान करके प्राप्त किया जाता है। सेट करने के लिए एक setMethod सब कुछ ठीक करता है मूल कार्यान्वयन अभी भी base::sample माध्यम से उपयोग किया जा सकता है।

मेरे आर पैकेज में एक फ़ंक्शन sample.rows केवल इस उद्देश्य के लिए।

 install.packages('kimisc') library(kimisc) example(sample.rows) smpl..> set.seed(42) smpl..> sample.rows(data.frame(a=c(1,2,3), b=c(4,5,6), row.names=c('a', 'b', 'c')), 10, replace=TRUE) ab c 3 6 c.1 3 6 a 1 4 c.2 3 6 b 2 5 b.1 2 5 c.3 3 6 a.1 1 4 b.2 2 5 c.4 3 6 

पिछले उत्तर के लिए जॉरीस मेयस द्वारा दिए गए टिप्पणियों के अनुसार, यह एक सामान्य एस 3 फ़ंक्शन बनाकर sample बढ़ाना बुरा विचार था।

आर में एक टिब्बल प्रकार से एक यादृच्छिक नमूना चुनें:

 library("tibble") a <- your_tibble[sample(1:nrow(your_tibble), 150),] 

नीरो एक चीख लेता है और पंक्तियों की संख्या देता है sample लिए पहला पैरामीटर पारित किया गया है जो 1 से लेकर अपने टिब्ब के अंत तक है। दूसरा पैरामीटर नमूना पारित किया है, 150, यह है कि आप कितने यादृच्छिक नमूने चाहते हैं। वर्ग ब्रैकेट स्कीइसिंग निर्दिष्ट करती है कि इंडेक्स की पंक्तियों को लौटा दिया गया था। वैरिएबल 'ए' को यादृच्छिक नमूने का मूल्य मिलता है