R の自分用の関数がごちゃごちゃしてきたのでパッケージ化して整理しようとしているのです。
tidysurv とかいう恐れ多い名前をつけてしまった……。
GitHub - abikoushi/tidysurv: R package for censored data handling
まだ作りかけです。dplyr、ggplot2 と survival パッケージに依存します。
インストールは
devtools::install_github("abikoushi/tidysurv")
です。動かなかったらすみません。ちゃんとテストしてないです。
tidysurv は survfit オブジェクトを tidy っぽいデータフレームにする関数です。
(本当はあまり tidy ではない:整然データとは何か|Colorless Green Ideas)
require(tidysurv)require(tidyverse)require(survival) lung2 <- lung %>% filter(ph.ecog!=3) sf <-survfit(Surv(time,status)~sex+ph.ecog,data=lung2) df1 <-tidysurv(sf) ggplot(df1,aes(x=time,y=survival,ymin=lower,ymax=upper,group=strata))+ geom_step()+ geom_ribbon(alpha=0.5)+ facet_wrap(~strata)
survfit したやつをプロットしたりするのに使います。
make_qdf は survfit オブジェクトのクォンタイルを取り出して tidy っぽいデータフレームにする関数です。
デフォルトだと25%点(25%の人が死亡した時点)、50%点、75%点を出力します。
df2 <-make_qdf(sf) ggplot(df2,aes(x=strata,y=q50,ymin=q25,ymax=q75))+ geom_pointrange()+ coord_flip()
これをそのままプロットすると75%の人が観測終了時点でまだ死亡してないグループは消えてしまいます。
そこで geom_cd_pointrange は NA をバツ印に置き換えて描画します(ただそれだけの関数です)。
ggplot(df2,aes(x=strata,y=q50,ymin=q25,ymax=q75))+ geom_cd_pointrange()+ coord_flip()
make_hdfは打ち切りデータのヒストグラム(Rによる打ち切りデータのヒストグラム (ggplot2) - 廿TT)を作るための関数です。
bw <-120 df3 <- make_hdf(sf,bw) ggplot(df3)+ geom_col(aes(x=midtime,y=density),width = bw,fill="white",colour="black")+ facet_wrap(~strata)
はい。
完成未定です。
アマゾンアフィリエイト貼りたいけどなにがいいのかな。おすすめの本とかあったら教えてください。
RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−
- 作者:松村優哉,湯谷啓明,紀ノ定保礼,前田和寛
- 出版社/メーカー:技術評論社
- 発売日: 2018/06/29
- メディア:大型本
- この商品を含むブログを見る