1. ホーム
  2. r

[解決済み] 相対生存率解析のための率表の作成

2022-02-15 13:06:21

質問内容

relsurvパッケージは相対生存率を計算することができます。

入力は、データ(私の場合は大腸癌と診断された患者)と、次の年齢区分までの生存率の変化(一般的には性別と診断年別)を含む率表です。

私の場合、年齢、性別、診断年、社会経済的スコアに応じた相対生存率を得たいのです。1つのデータ・フレームに率表に入るべきすべてのデータを持っています。

   > head(lifetable)
     sex  seifa age      2007      2008      2009      2010      2011      2012      2013
1 female SEIFA1   0 0.9947100 0.9953400 0.9956200 0.9959200 0.9964100 0.9966000 0.9966800
2 female SEIFA1   1 0.9996625 0.9996613 0.9997038 0.9996489 0.9996425 0.9996667 0.9997556
3 female SEIFA1   2 0.9997750 0.9997968 0.9998105 0.9998119 0.9998350 0.9998167 0.9998656
4 female SEIFA1   3 0.9998375 0.9998374 0.9998460 0.9998621 0.9998625 0.9998667 0.9999022
5 female SEIFA1   4 0.9998750 0.9998645 0.9998697 0.9998871 0.9998900 0.9999000 0.9999267
6 female SEIFA1   5 0.9998827 0.9999077 0.9998887 0.9998956 0.9999037 0.9999160 0.9999280

これを「ratetable」に変換する手っ取り早い方法を探しています。いろいろ検索してみたのですが、何も見つかりませんでした...。どなたか教えてください。

どのように解決するのですか?

このトピックを閉じるために、私は解決策を見つけました。

  1. 標準レート表(年齢、性別、年別)を5つ作成し、各世帯のカテゴリーごとに1つずつ作成する。
   for (i in seq_along(levels(lifetable$seifa))){         # Create standard ratetables (by age,sex,year) for each seifa category
   lt_ss_f <- subset(lifetable, seifa == paste("SEIFA", i, sep="") & sex =="female"); lt_ss_f <- lt_ss_f[-c(1:3)]; lt_ss_f <- as.matrix(lt_ss_f)    
   lt_ss_m <- subset(lifetable, seifa == paste("SEIFA", i, sep="") & sex =="male")  ; lt_ss_m <- lt_ss_m[-c(1:3)]; lt_ss_m <- as.matrix(lt_ss_m)     
   assign(paste("SEIFA", i, sep=""),  transrate(lt_ss_m,lt_ss_f, yearlim=c(2003,2013), int.length=1))} 

  1. joinrate()を使用して5つの料金テーブルを結合し、4次元(年齢、性別、年、seifa)を含む完全な料金テーブルを作成します。
<ブロッククオート
FULLrateTable <- joinrate(list(SEIFA1=SEIFA1, SEIFA2=SEIFA2, SEIFA3=SEIFA3, SEIFA4=SEIFA4, SEIFA5=SEIFA5),dim.name="SEIFA")