2013-10-14 19 views
7

मैं में यादृच्छिक संख्या के साथ एक डेटा फ्रेम आरआर प्रत्येक स्तंभ

मैं 1000 यादृच्छिक संख्या की इस अनुकरण करने के लिए नया बनाएं:

a<-sample(0:1,1000,rep=TRUE) 

क्या मैं चाहता हूँ के एक डेटा फ्रेम है दस कॉलम, जहां प्रत्येक कॉलम के मान एक जैसे उत्पन्न होते हैं।

उदाहरण के लिए:

id Column 1 Column2 .........Column 10 
1 1        1 
2 0        1 
3 1    
    0 
    0 
    . 
    . 
1000 1        1 

उत्तर

16

आप replicate लिए देख रहे हैं:

data.frame(replicate(10,sample(0:1,1000,rep=TRUE))) 

इन शीर्ष कुछ पंक्तियाँ हैं:

X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 
1 1 1 0 1 0 0 1 1 1 0 
2 0 0 0 1 0 1 0 0 1 0 
3 0 1 1 1 1 0 1 1 1 1 
4 0 0 0 1 1 1 1 1 1 0 
5 1 0 1 0 1 1 0 1 1 0 
6 0 1 1 1 1 1 0 1 1 1 

आप इसे लपेटकर के बिना एक ही आदेश करते हैं data.frame() में, आपके पास एक मैट्रिक्स होगा। Matrices के साथ काम करने के लिए तेज़ हैं, तो आप जांच कर सकते हैं कि वे आपकी समस्या के लिए उपयुक्त हैं या नहीं।

+0

एक यादृच्छिक संख्या को कैसे हल करें? मैं '1000' को' नमूना (10: 100,1) 'के साथ प्रतिस्थापित करने की कोशिश कर रहा हूं लेकिन यह काम नहीं करता है। – jangorecki

+1

@jangorecki असमान वैक्टरों की एक सूची देकर, 'डेटा.फ्रेम' कॉल को काम करने के लिए हटा दिया जाना चाहिए। यदि आप अभी भी इसे एक ही डेटा में चाहते हैं। फ्रेम, मुझे लगता है कि आपकी सबसे अच्छी शर्त एक नया सवाल पूछ रही है। मुझे मिले कामकाज - 'cbind.na', 'rbind.fill',' rbindlist (res, fill = TRUE)' - सभी सर्किट हैं। यहां एक धागा है जो मदद की हो सकती है: http://r.789695.n4.nabble.com/How-to-join-matrices-of- अलग-row-length-from-a-list-td3177212.html – Frank

+0

बीटीडब्ल्यू , वाक्यविन्यास 'data.frame है (दोहराना (कॉल, नमूना (रेंज, पंक्ति, प्रतिनिधि = TRUE))' – alvas

5

क्यों नहीं सभी नंबरों को एक साथ उत्पन्न करें और अपने कॉलम बनाने के लिए मैट्रिक्स का उपयोग करें। इसके अतिरिक्त आप rbinom उपयोग कर सकते हैं जल्दी से संख्या के इन प्रकार उत्पन्न करने के लिए:

matrix(rbinom(10*1000, 1, .5), ncol=10) 

पी एस मैं बिल्कुल नहीं करते कि तुम क्या पूछा के लिए मुझे लगता है b/c आपने कहा था कि आप आर के लिए नए हैं आप के बारे में पता नहीं हो सकता संख्याओं को उत्पन्न करने का यह तरीका।

+0

यदि आप वास्तव में ऊपर दिए गए कोड के आस-पास 'data.frame' को लपेटना चाहते हैं। 1012 के बजाय एक बार नमूनाकरण के लिए –

+0

+1। आप यहां एन = 10 * 1000 चाहते हैं। – Frank

+1

ओह फ्रैंक मैं इसे बदल दूंगा, [पोस्टर मूल रूप से अंतिम पंक्ति संख्या के रूप में 100 था] (http://stackoverflow.com/posts/19352267/revisions) लेकिन मैंने पोस्ट करने के बाद एक संपादन देखा। –

संबंधित मुद्दे