2015-09-05 27 views
1

X與參數lambda=0.5呈指數分佈。
我想查找Pr(1/mean(X)< K)=0.95 由於我不知道1/mean(X)的分佈,我用下面的代碼生成了一個分佈。通過R中的隨機數生成查找分佈

m<-c() 
exponentialFunc<-function(n,lambda,nsim){ 
    for(i in seq(nsim)){ 
    x<-rexp(n,lambda) 
    y<-mean(x) 
    m<-c(m,1/y) 
    } 
    m 

} 

現在m1/mean(x)分佈。
現在我通過exponentialFunc(10,0.5,10000)調用該函數,它給出了一系列的m值。
但後來我想找到這個分佈,當我使用具有0.95的概率位數quantile(m,0.95)輸出

> quantile(m,0.95) 95% NA
爲什麼會產生NA?我的代碼有什麼問題嗎?

回答

2

看來你沒救了你的函數的輸出在名爲m對象:

> m <- exponentialFunc(10,0.5,10000) 
> quantile(m,0.95) 
    95% 
0.939102 

要調用的函數,而不是保存它的任何地方,似乎有什麼你做的是(基本上):

> m<-c() 
> quantile(m,0.95) 
95% 
NA 
+1

很好的解釋。或者,可以將函數輸出直接作爲參數傳遞:'quantile(exponentialFunc(10,0.5,10000),0.95)'。 – RHertel

+1

@erasmortg謝謝。它解決了這個問題 – clarkson