嗨:我试图在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. 情节经验累积分布函数的(是百分曲线)
- 2. 累积分布函数,阈值,R
- 3. 如何获取累积分布函数
- 4. Python中的累积分布
- 5. 如何有效计算负二项累积分布函数?
- 6. 关于计算和绘制累积经验分布的练习
- 7. 目标C中的累积正态分布函数C
- 8. 累积分布图python
- 9. 用不同的累积分布拟合实验数据点使用R
- 10. 绘制经验累积概率函数及其逆
- 11. R中两个自变量的联合累积分布
- 12. 在MATLAB中绘制累积分布函数
- 13. 如何将正态分布的累积分布函数拟合到数据点?
- 14. 使用MATLAB绘制平滑的累积分布函数
- 15. 累积分布函数:如何计算的离散情况下
- 16. Python 3 - 累积函数替代方案
- 17. Python-读取非常大的栅格和绘图经验累积分布函数,内存错误
- 18. 哪个Java库计算累积标准正态分布函数?
- 19. 反向正态累积分布函数转换
- 20. 绘制MatLab中的累积分布函数(对数x轴/ y轴)
- 21. 不同分母的分数累积和R
- 22. boost mpl积分型积累
- 23. 计算累积二项式概率中的R
- 24. 具有较小Double值的Java中的反向累积Beta分布函数
- 25. 在R中的二进制向量中具有0分隔符的1的块的累积计数R
- 26. 二元函数的最大化 - R的代码
- 27. 与NA的累积收益中的R
- 28. 将数据中发现的元素拟合为其累积分布时出错
- 29. 如何绘制R中的互补累积分布函数(CCDF)(最好在ggplot中)?
- 30. R/ggplot直方图中的累积和
如何检索的[旧版本的软件包,(http://cran.r-project.org/src/contrib /存档/ mecdf /)? – 2014-09-05 12:41:42