2013-06-25 13 views
9

से एक आंतरिक आर सी समारोह कॉल करने के लिए मैं stats पैकेज है कि एक ची-वर्ग परीक्षण के लिए एक नकली p.value गणना करने के लिए आकस्मिक टेबल simulates से आर कोड पुन: उपयोग करना चाहते हैं।कैसे अपने खुद के कोड

if (simulate.p.value && all(sr > 0) && all(sc > 0)) { 
     setMETH() 
     tmp <- .Call(C_chisq_sim, sr, sc, B, E) 
     STATISTIC <- sum(sort((x - E)^2/E, decreasing = TRUE)) 
     PARAMETER <- NA 
     PVAL <- (1 + sum(tmp >= almost.1 * STATISTIC))/(B + 
      1) 
    } 

यहां दिलचस्प लाइन .Call कॉल है:

जब chisq.test समारोह स्रोत कोड देख, आप निम्न देख सकते हैं

tmp <- .Call(C_chisq_sim, sr, sc, B, E) 

मैं क्या करना चाहते हैं क्या, यदि यह संभव है, तो अपने 0 कोड में इस C_chisq_sim फ़ंक्शन का उपयोग करना है, लेकिन मैं इसे करने में सक्षम नहीं हूं। यदि मैं इसके साथ प्रयास करता हूं:

tmp <- .Call(C_chisq_sim, sr, sc, B, E, PACKAGE="stats") 

मुझे C_chisq_sim object not found त्रुटि मिलती है। और यदि मैं इसके साथ प्रयास करता हूं:

tmp <- .Call("C_chisq_sim", sr,sc,B,E, PACKAGE="stats") 

मुझे यह कहते हुए एक त्रुटि मिलती है कि प्रविष्टि बिंदु लोडिंग तालिका में नहीं है।

मुझे एक समाधान चाहिए जो संभव हो तो क्रॉस-प्लेटफॉर्म होगा।

उत्तर

11

यह चाल मुझे लगता है कि क्या करना चाहिए:

tmp <- .Call(stats:::C_chisq_sim, sr, sc, B, E, PACKAGE="stats") 
+0

आह, हाँ, यह काम करता है! आपका बहुत बहुत धन्यवाद ! – juba

+1

':::' (और इस प्रकार सीआरएएन के क्रोध से परहेज) के बिना यह कैसे संभव है? – Henrik

0

एक अन्य विकल्प आपके पास (documentation देखें) आर समारोह r2dtable उपयोग करने के लिए है।

C_chisq_sim और r2dtable दोनों AS159 एल्गोरिदम का उपयोग करते हैं। यदि आप अन्य स्रोत कोड विकल्प चाहते हैं, तो यह reference देखें।

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