Iは、次の通常の混合モデルとビン観察から1,000,000
観察をサンプリング セットアップ10,000
ビンのそれぞれは、観察の同数(即ち100
)を有するようにします。これは、(a,b]
の形式で各ビンの要因を作成します。ここで、a
とb
は数字です。因子変数をある間隔からエンドポイントを取得
#Random sample
set.seed(1234)
X = ks::rnorm.mixt(n=1000000,mus=c(0.2,0.8),sigmas=c(0.04,0.01),props=c(0.95,0.05))
#Bins based on random sample with ~100 observations in each bins
bins = ggplot2::cut_number(X,10000)
dat = data.frame(X,bins)
質問 私が要因(a,b]
から数字a
とb
を抽出したいと思います。ここではビンがどのように見えるかです:
> head(table(bins))
bins
[0.00501617,0.0518875] (0.0518875,0.0594831] (0.0594831,0.0640679]
100 100 100
(0.0640679,0.0670062] (0.0670062,0.0694194] (0.0694194,0.0717924]
100 100 100
> tail(table(bins),20)
bins
(0.817766,0.818032] (0.818032,0.8183] (0.8183,0.818544] (0.818544,0.818879]
100 100 100 100
(0.818879,0.819112] (0.819112,0.819394] (0.819394,0.819664] (0.819664,0.819979]
100 100 100 100
(0.819979,0.820328] (0.820328,0.820727] (0.820727,0.821118] (0.821118,0.82158]
100 100 100 100
(0.82158,0.822109] (0.822109,0.822646] (0.822646,0.823253] (0.823253,0.82408]
100 100 100 100
(0.82408,0.825026] (0.825026,0.826417] (0.826417,0.828651] (0.828651,0.84424]
100 100 100 100
あなたが見ることができるように、要因の数字は常に同じ桁数を持っていないと、彼らが0の(例えば(0.0518875,0.0594831]
)が先行することができます。
Iが最初に上記のビン((0.0518875,0.0594831]
)について
endpts=na.omit(as.numeric(unlist(strsplit(as.character(unlist(bins)),"[^0-9]+"))))
を用いだけ数字部分を抽出しようとした後続のゼロがなくなっているため、この手順は、出力 518875 594831
、しかし、それは、いくつかにマッピングすることができるであろう値(例:0.518875 0.594831
)。さらに、数字の一方または両方が異なる桁数(例えば、(0.818032,0.8183]
)を有するビンがある。出力の均一性の欠如は、エンドポイントを取得しようとすると問題が発生します。最終的には、左右のエンドポイントを取得したいと考えています。助言がありますか?
編集また、cut
機能を使用するggplot2::cut_number
のコードを調べました。数字の桁数のデフォルト入力cut
はdig.lab=3
ですが、これは上記の出力に反映されていないようです。
小数点を保存すると、コードが成功する可能性が高くなります。 –