嗨:我試圖在R中獲得這個函數的代碼,但是沒有辦法。 R中有一個名爲mecdf的包,但現在不可用。請有人幫助我嗎?R中的二元經驗累積分佈函數代碼
3
A
回答
0
@VincentGuillemot將答案作爲評論 - 不贊成使用的軟件包存檔在CRAN上。
的鏈接是:http://cran.r-project.org/src/contrib/Archive/mecdf/
的代碼是:
mecdf = function (x, continuous=FALSE, ...,
validate=TRUE, expand=continuous, project=FALSE, expandf=0.1)
{ x = cbind (x)
nraw = nr = nrow (x)
nc = ncol (x)
if (validate)
{ if (length (list (...)) > 0)
stop ("invalid constructor argument")
if (!is.numeric (x)) stop ("x must be numeric")
if (!all (is.finite (x))) stop ("all x must be finite")
for (j in 1:nc) if (length (unique (x [,j])) < 2)
stop ("each variable requires at least 2 distinct realisations")
if (nc == 1) x [] = sort (x)
if (is.null (colnames (x))) colnames (x) = paste ("x", 1:ncol (x), sep="")
if (is.null (rownames (x))) rownames (x) = 1:nr
}
if (expand)
{ nr = nr + 2
a = b = numeric (nc)
for (j in 1:nc)
{ xrng = range (x [,j])
xf = expandf * diff (xrng)
a [j] = xrng [1] - xf
b [j] = xrng [2] + xf
}
x = rbind (a, x, b)
}
if (project)
for (j in 1:nc) x [,j] = (order (order (x [,j])) - 1)/(nr - 1)
Fh = Fst = NULL
if (nc > 1)
{ if (continuous)
{ Fh = .mecdf.continuous
Fst = .mecdf.vertex
}
else Fh = FUNCTION (.mecdf.step)
}
else
{ if (continuous) Fh = .uecdf.continuous
else Fh =.uecdf.step
}
extend (FUNCTION (.mecdf.main), "mecdf", continuous, Fh, Fst, nraw, nr, nc, x)
}
.mecdf.main = function (u)
{ if (.$nc > 1)
{ if (!is.matrix (u)) u = rbind (u)
if (.$nc != ncol (u))
stop ("k-variate mecdf requires k-column matrix")
.mecdf.interpolate (.$Fh, .$Fst, .$nr, .$nc, .$x, u)
}
else
{ if (is.matrix (u) && ncol (u) > 1)
stop ("univariate mecdf doesn't accept multicolumn matrix")
.uecdf.interpolate (.$Fh, .$nr, .$x, u)
}
}
print.mecdf = function (m, ...)
{ variate = if (m$nc == 1) "univariate"
else if (m$nc == 2) "bivariate"
else paste (m$nc, "-variate", sep="")
type = if (m$continuous) "continuous" else "step"
cat ("mecdf_{", variate, ", ", type, "}\n", sep="")
print (samp (m$x))
}
plot.mecdf = function (m, ...)
{ p = m (m$x)
if (m$nc == 1) .uecdf.plot (m, p, m$continuous, ...)
else if (m$nc == 2) .becdf.plot (m, p, ...)
else stop ("s3x_plot.mecdf only supports univariate and bivariate models")
}
.uecdf.plot = function (e, p, continuous, ...)
{ xlab = colnames (e$x)
ylab = "Fh(x)"
if (continuous)
plot (e$x, p, ylim=c (0, 1), yaxs="i", type="l", xlab=xlab, ylab=ylab, ...)
else
{ plot (e$x, p, ylim=c (0, 1), yaxs="i", xlab=xlab, ylab=ylab, pch=NA, ...)
x1 = e$x [-e$nr]
x2 = e$x [-1]
p0 = p [-e$nr]
segments (x1, p0, x2, p0)
segments (e$x, c (0, p), e$x, c (p, 1))
}
}
.becdf.plot = function (e, p, lines=TRUE, lty=1, col=rgb (0.975, 0.7, 0), ...)
{ labs = colnames (e$x)
x1 = e$x [,1]; x2 = e$x [,2]
plot (x1, x2, xlab=labs [1], ylab=labs [2], pch=NA, ...)
if (lines)
{ segments (x1, x2, x1 - 2 * diff (range (x1)), x2, lty=lty, col=col)
segments (x1, x2, x1, x2 - 2 * diff (range (x2)), lty=lty, col=col)
}
text (x1, x2, round (p, 2))
}
+0
非常感謝:) – 2014-09-12 11:20:41
+0
@QuintinCopete你有沒有得到這個工作?在哪個版本的R?我在3.2中遇到各種麻煩。 – 2015-09-25 20:11:51
相關問題
- 1. 建立R中的經驗累積分佈函數和數據插值
- 2. 情節經驗累積分佈函數的(是百分曲線)
- 3. 累積分佈函數,閾值,R
- 4. c中的反累積分佈函數
- 5. 在R中使用Weibull的累積分佈函數
- 6. R中累積高斯分佈的反函數
- 7. 一組值的累積分佈函數
- 8. 累積分佈函數錯誤
- 9. Matlab - 累積分佈函數(CDF)
- 10. 如何獲取累積分佈函數
- 11. SciPy累積分佈函數繪圖
- 12. matlab中的累積分佈
- 13. Python中的累積分佈
- 14. 如何有效計算負二項累積分佈函數?
- 15. 關於計算和繪製累積經驗分佈的練習
- 16. 分位數估計後建立一個累積分佈函數
- 17. 卓爾在matlab中的累積分佈函數
- 18. 目標C中的累積正態分佈函數C
- 19. 累積分佈圖python
- 20. 用不同的累積分佈擬合實驗數據點使用R
- 21. 繪製經驗累積概率函數及其逆
- 22. R中兩個自變量的聯合累積分佈
- 23. 詞典中的累積分佈
- 24. 擬合數據的概率分佈並找到它的累積分佈函數
- 25. 在MATLAB中繪製累積分佈函數
- 26. 如何將正態分佈的累積分佈函數擬合到數據點?
- 27. 數值二重積分中的R
- 28. 在MATLAB(累積分佈函數)中,如何找到任何選定累積概率的相應數據點(Y)?
- 29. 非參數反演(累積)分佈函數
- 30. 使用MATLAB繪製平滑的累積分佈函數
如何檢索的[舊版本的軟件包,(http://cran.r-project.org/src/contrib /存檔/ mecdf /)? – 2014-09-05 12:41:42