廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

打ち切りデータを扱うために前に書いた R の関数群をパッケージ化しました

今日の川柳

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 したやつをプロットしたりするのに使います。

f:id:abrahamcow:20180620225133p:plain


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%の人が観測終了時点でまだ死亡してないグループは消えてしまいます。

f:id:abrahamcow:20180620225419p:plain


そこで geom_cd_pointrange は NA をバツ印に置き換えて描画します(ただそれだけの関数です)。

ggplot(df2,aes(x=strata,y=q50,ymin=q25,ymax=q75))+
  geom_cd_pointrange()+
  coord_flip()

f:id:abrahamcow:20180620225709p:plain

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)

f:id:abrahamcow:20180620225846p:plain

はい。

完成未定です。

アマゾンアフィリエイト貼りたいけどなにがいいのかな。おすすめの本とかあったら教えてください。

RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−

RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−