आर

2012-07-24 19 views
16

का उपयोग कर सामान्य सामान्य यादृच्छिक चर के साथ मैट्रिक्स जेनरेट करें क्या लूप का उपयोग किये बिना सामान्य रूप से वितरित यादृच्छिक मानों के साथ डेटा सेट जेनरेट करने का कोई तरीका है? प्रत्येक प्रविष्टि एक सामान्य वितरण के साथ एक स्वतंत्र यादृच्छिक चर का प्रतिनिधित्व करेगा।आर

+6

'मैट्रिक्स (आरएनओआरएम (एन * पी), एन)' iid $ \ mathcal एन (0,1) $ प्रविष्टियों के साथ $ n \ times p $ matrix के लिए। – cardinal

उत्तर

21

पकड़े आईआईडी सामान्य यादृच्छिक के एक मैट्रिक्स M द्वारा N बनाने के लिए के साथ एक मैट्रिक्स का उत्पादन होगा mu चर इस प्रकार टाइप करें:

matrix(rnorm(N*M,mean=0,sd=1), N, M) 

माध्य और स्टैंडर को ट्विक करें वांछित के रूप में डी विचलन।

+0

जब तक प्रश्नकर्ता समझता है कि एन पंक्तियों की संख्या है और एम स्तंभों की संख्या है, तो उसे इस उत्तर –

+0

@DWin द्वारा अच्छी तरह से सेवा दी जाएगी। यद्यपि किसी भी संदर्भ में मैट्रिस का जिक्र करते समय यह पारंपरिक संकेत है, है ना? – Macro

+0

मुझे सच में यकीन नहीं है। मुझे पता है कि लोग कभी-कभी इस तथ्य पर आश्चर्य व्यक्त करते हैं कि आर की मैट्रिस कॉलम-प्रमुख क्रम में 'मैट्रिक्स' तक कॉल के साथ भर जाती है जब तक कि बाई = TRUE। मैंने मुझे ऐसा सोचा कि विभिन्न भाषाओं में मैट्रिक्स सम्मेलनों में भिन्नता हो सकती है। –

2

देना साधन का एक वेक्टर और sigma मानक devs

mu<-1:10 
sigma<-10:1 
sample.size<-100 
norm.mat<-mapply(function(x,y){rnorm(x,y,n=sample.size)},x=mu,y=sigma) 

का एक वेक्टर कॉलम प्रासंगिक नमूने

+0

धन्यवाद, यह काम करता है। @ कार्डिनल का समाधान बहुत आसान है। –

-2

नोटिस: प्रत्येक प्रविष्टि स्वतंत्र है। तो आप लूप के लिए उपयोग से बच नहीं सकते हैं, क्योंकि आपको प्रत्येक स्वतंत्र चर के लिए एक बार rnorm कॉल करना होगा। यदि आप केवल rnorm (n * m) को कॉल करते हैं जो एक ही यादृच्छिक चर से n * m नमूने है!

+0

यह गलत है, और उलझन में है ... 'rnorm (n * m)' * * * एन * एम' ** स्वतंत्र ** यादृच्छिक नमूने उत्पन्न करता है, ठीक उसी तरह ओपी अनुरोध करता है। –

1

आप उपयोग कर सकते हैं:

replicate(NumbOfColumns,rnorm(NumbOfLines)) 

आप अन्य वितरण समारोह के साथ rnorm जगह ले सकता है, उदाहरण के runif के लिए, अन्य वितरण के साथ मैट्रिक्स उत्पन्न करने के लिए।