2012-02-10 15 views
5

मेरे पास 4 आबादी ज्ञात साधनों और मानक विचलन के साथ है। मैं भव्य मतलब और भव्य एसडी जानना चाहता हूं। भव्य मतलब गणना करने के लिए स्पष्ट रूप से सरल है, लेकिन आर के पास एक आसान उपयोगिता कार्य है, weighted.mean()। मानक विचलन के संयोजन के लिए एक समान कार्य मौजूद है?आर में मानक विचलन को गठबंधन करने के लिए मौजूदा कार्य?

The calculation is not complicated, लेकिन एक मौजूदा फ़ंक्शन मेरे कोड क्लीनर को समझने और समझने में आसान बना देगा।

बोनस सवाल, आप इस तरह के कार्यों की खोज के लिए किस टूल का उपयोग करते हैं? मुझे पता है कि यह वहां होना चाहिए, लेकिन मैंने बहुत सी खोज की है और इसे नहीं मिल पा रहा है। धन्यवाद!

+0

अपने खोज प्रश्न के संबंध में, ** एसओएस ** पैकेज से 'findFn' एक आसान टूल है। – joran

+0

@AndresT, हां, आबादी गैर-ओवरलैपिंग हैं। –

+0

@ जोरन धन्यवाद, मुझे इसके बारे में पता नहीं था, मैं इस तरह से खोजना शुरू कर दूंगा। मैं अनुमान लगा रहा हूं कि 'मानक विचलन' आर मैनुअल –

उत्तर

4

क्या आबादी गैर ओवरलैपिंग नहीं है?

library(fishmethods) 
combinevar 

उदाहरण के लिए विकिपीडिया में उदाहरण इस तरह काम करेगा:

xbar <- c(70,65) 
s<-c(3,2) 
n <- c(1,1) 
combinevar(xbar,s,n) 

और मानक विचलन sqrt किया जाएगा (combinevar (xbar, रों, एन) [2])

अगर आप

combinevar <- 
function (xbar = NULL, s_squared = NULL, n = NULL) 
{ 
    if (length(xbar) != length(s_squared) | length(xbar) != length(n) | 
     length(s_squared) != length(n)) 
     stop("Vector lengths are different.") 
    sum_of_squares <- sum((n - 1) * s_squared + n * xbar^2) 
    grand_mean <- sum(n * xbar)/sum(n) 
    combined_var <- (sum_of_squares - sum(n) * grand_mean^2)/(sum(n) - 
     1) 
    return(c(grand_mean, combined_var)) 
} 
4

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

## N: vector of sizes 
## M: vector of means 
## S: vector of standard deviations 

grand.mean <- function(M, N) {weighted.mean(M, N)} 
grand.sd <- function(S, M, N) {sqrt(weighted.mean(S^2 + M^2, N) - 
             weighted.mean(M, N)^2)} 
+0

इस उत्तर फ़्लोडल के लिए बहुत बहुत धन्यवाद। विकिपीडिया पर सूत्र को देखते समय, मुझे नहीं लगता था कि मैं गणना को उतना सरल बना सकता हूं जितना आपने किया था। मैं वास्तव में इसका उपयोग कर सकता हूं, लेकिन एंड्रेस की प्रतिक्रिया दूसरों को इस प्रश्न को ढूंढने के लिए थोड़ा अधिक व्यापक है। धन्यवाद! –

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