r - 如何从 Ecdf() 返回值中提取 Ecdf 值?

标签 r list ecdf

This 的答案这里的问题提出了一种应用ecdf的方法。

但是,我使用 Hmisc 包中的 Ecdf(),因为它提供了一种方便的方法来绘制 ccdf(互补累积分布函数)图。 (通过将 what 选项设置为“1-F”)

默认情况下,Ecdf() 进行绘图并返回包含 xy 的嵌套列表。

如何提取特定x值的y值?然后将其绘制在原始绘图上?

仅供引用:

 > str(Ecdf(rnorm(20), lwd = 2))
    List of 2
     $ x: num [1:21] -1.46 -1.46 -1.18 -1.17 -1.16 ...
     $ y: num [1:21] 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 ...
     - attr(*, "N")=List of 2
      ..$ n: num 20
      ..$ m: num 0

首先,我正在考虑使用 R List to Data Frame 建议的方法将此列表转换为 data.frame ,但我的数据很大,而且 rbind 看起来真的很慢。

最佳答案

Ecdf 返回一个列表,而 ecdf 返回一个函数。使用 R-stats 函数 ecdf 比使用类似以下的东西要容易得多:Ecdf(.)$y[ min(which(Ecdf(.)$x>val) ))]。如果您想要来自 Ecdf-object 的 ecdf(x=0) 值,那么这应该可行:

 ecdf( Ecdf(rnorm(20), lwd = 2)$x ) (v=0)
[1] 0.5238095

(事实证明,ecdf 返回的函数的形式参数是“v”。)但是,如果您想要不太优雅的方法,并且您已经将结果分配给名为 ' 的对象, oneEcdf':

oneEcdf <- Ecdf(rnorm(20), lwd = 2)
oneEcdf$y[ min( which(oneEcdf$x > 0 ))]
[1] 0.6

关于r - 如何从 Ecdf() 返回值中提取 Ecdf 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816645/

相关文章:

r - 在 R ~ Caret 包中设置树的数量

r - 循环遍历列以分析不同的因变量

r - 从 3 个不同大小的输入矩阵构建所有可能的 3 列矩阵

r - 根据不同列上以相同单词开头的元素创建列

python字典和列表: how to convert it?

python - 如何在 seaborn ecdf 图上的 axhline 的交点上找到 x 值?

python - 如何创建行中包含指定字符串的列列表?

python - 如何在 Python 中输入数据时保持排序列表

r - 获取与 ggplot + stat_ecdf() 关联的数据

R ecdf 折线图上的高亮点