首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Ecdf()返回中提取Ecdf值?

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

Stack Overflow用户
提问于 2013-05-29 22:28:51
回答 1查看 4.3K关注 0票数 2

这里对This问题的回答提出了一种通过应用ecdf的方法。

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

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

如何提取某个x值的y值?然后把它画在原图上?

仅供参考:

代码语言:javascript
复制
 > 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似乎真的很慢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-30 00:19:04

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

代码语言:javascript
复制
 ecdf( Ecdf(rnorm(20), lwd = 2)$x ) (v=0)
[1] 0.5238095

(原来ecdf返回的函数的形参是“v”。)但是如果你想要一个不那么优雅的方法,并且你已经将结果赋给了一个名为‘oneEcdf’的对象:

代码语言:javascript
复制
oneEcdf <- Ecdf(rnorm(20), lwd = 2)
oneEcdf$y[ min( which(oneEcdf$x > 0 ))]
[1] 0.6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16816645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档