2

This question hereに対する答えは、適用による方法を提案しecdfます。

ただし、ccdf(相補累積分布関数)プロットを実行する便利な方法を提供するためEcdf()、パッケージから使用しています。(オプションを「1-F」にHmisc設定することにより)what

デフォルトでは、 はプロットを実行し、とEcdf()を含むネストされたリストを返します。xy

y特定の値の値を抽出するにはどうすればよいxですか? 元のプロットにプロットしますか?

ご参考までに:

 > 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 から Data Frameに提案された方法を使用して、このリストを data.frame に変換することを検討していますが、私のデータは巨大で、rbind本当に遅いようです。

4

1 に答える 1

1

Ecdfリストをecdf返しますが、関数を返します。R-stats 関数を使用する方が、次のecdfような拷問されたものを使用するよりもはるかに簡単ですEcdf(.)$y[ min(which(Ecdf(.)$x>val))]。から ecdf(x=0) の値が必要な場合Ecdf-object、これは機能するはずです。

 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
于 2013-05-29T16:19:03.953 に答える