メモ Rで練習 dhyperの非0からベクトルを作る
hyper関数の結果、ベクトル要素に0が並ぶことも多い.非0ベクトルを作ればいい.
・題材 dh_158<-dhyper(80:158,98,76,158)
【目盛消す】 x軸目盛を消して、タイトルとして80:98を書き込む
plot(dhyper(80:98,98,76,158),type="h",xaxt="n",x=80:98)
■ 【0でないデータの位置、長さ】
which(dh_158>0)
[1] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
つまり、
min(which(dh_158>0))
[1] 3
length(which(dh_158>0))
[1] 17
なので、dhyperを更新して、0でない区間のdhyperを計算する.
dhnew<-dhyper(83:97,98,76,158)
■ 別法
【0でないデータをとりだす】
dhhi <- dh_158>0 0でないデータかどうか ↓ 論理で現れる
[1] FALSE FALSE TRUE TRUE TRUE・・・
dh1 <- dh_158[dhhi] TRUEのデータだけから ベクトル作る
dh1
[1] 5.719778e-05 8.379818e-04 5.611485e-03 2.279803e-02
[5] 6.289341e-02 1.249193e-01 1.847765e-01 2.076141e-01
[9] 1.790671e-01・・・・・
*hyperの結果、非0は隣り合った1つの山にまとまるので、0の両裾がカットされる.
図 略