我寫中的R的函數,將計算二項式分佈和正態分佈之間的平方之和,並作爲p
總是收到INF值時,我一個數組
的功能顯示數據運行一個函數以下是我有:
首先,我產生的概率爲p隨機二項式分佈(N = 100)
random_binom<-rbinom(100,100,p)
接下來,我發現一些隨機的因素有EQUA概率升或小於值NP(平均值),並根據正態分佈
d_norm<-dnorm(random_binom,p*100,sqrt(100*p*(1-p)))
然後,在分佈的隨機值將具有比值等於或小於的概率的sqrt(np(1-p))
標準偏差平均根據二項分佈
d_binom<-dbinom(random_binom,100,p)
最後我兩者相減,取平方,並將其返回。
result<-sum((d_norm-d_binom)^2)
return(result)
現在在控制檯中,我創建了這一切功能:
的MyFunction:
function(p){
random_binom<-rbinom(100,100,p)
d_norm<-dnorm(random_binom,p*100,sqrt(100*p*(1-p)))
d_binom<-dbinom(random_binom,100,p)
result<-sum((d_norm-d_binom)^2)
return(result)
}
我想在矢量以通爲p其中p<-(c(0:99)/100)
,但每當我這樣做,函數返回
inf
而不是一個值的向量。我如何讓R返回值的向量,以便我可以繪製它們?我一直在使用lapply嘗試,但在一個陌生的格式返回數據:
[[95]]
[1] 0.01064091
[[96]]
[1] 0.01418807
[[97]]
[1] 0.02647295
[[98]]
[1] 0.05065813
[[99]]
[1] 0.1179141
[[100]]
[1] 0.7342808
這意味着每個元素包含其他元素,使得以圖形非常困難。
而不是使用'unlist',你可以使用'sapply'而不是'lapply'。 –