Rstudioを用いたFAERSの不均衡分析①


対象期間のdemoデータを結合したら、必要な情報をdemoデータに加えていきます。

有害事象はreac、薬剤情報はdrugからデータを抽出します。

*不均衡分析は、除外基準を満たした患者を除いた

- 全患者数

- 対象とする全有害事象数

- 対象とする薬剤の使用患者数

- 対象とする薬剤を使用して有害事象が報告された患者数

の4つがわかれば、引き算とχ2検定を用いて計算できます。

計算の詳細はこちらのページをご参照ください。


これから示すやり方は、あくまで初学者の私のやり方ですので、もっとエレガントなやり方が必ずあると思います。

*下記の方法の場合、demoデータの基準に該当する除外を最初に実施してしまうと、紐づけする有害事象や薬剤の中で除外に該当するcaseidがあった場合、除外したcaseidが追加されてしまいます。

そのため、

1. まずは薬剤や有害事象の紐づけ

2. 除外基準を満たすケースの除外

の順で、データセットを作っていく必要があることにご注意ください。


①reacから対象とする有害事象を抽出する

1. subsetを使い、ptから対象とする有害事象を抽出

例)dataから "Acute kidney injury"という有害事象を抽出する(dtとして保存される)

dt <- subset( data, subset = pt == "Acute kidney injury" )

 

2. 重複するcaseidデータを削除する

例) dt <- dt[!duplicated(dt$caseid),]


3. 必要な列以外を削除する(caseidとpt列のみ残す)

例) dt <- select(.data = dt, caseid, pt)


4. カラム名(pt)を副作用名にする

例)  dt <- dplyr::select(dt, Rhabdomyolysis = pt, dplyr::everything())


5. demoデータに副作用情報を結合する

例) demo <- dplyr::left_join(demo, dt, by = "caseid")

*上記作業プロセスで必要に応じてファイル名(dt)を変えて、保存しておくと、後で振り返りが楽です。

*重複削除などを忘れると、Nが増えてしまいますので、随時データセットのNをメモしておくと良いと思います。(重複削除のプロセスも明確になり、何を何件除外したか振り返りが容易になります)

*Consoleにファイル名とNをメモしておくと、後で振り返りが楽です。(例:#副作用データ追加、N = 11443514など)


②drugから対象とする薬剤を抽出する

1. 対象とする薬剤を抽出

例)ファイル名をALLOPURINOLとして、drug(データ名)からアロプリノールを抽出

ALLOPURINOL <- drug %>% 

         filter(grepl(pattern = "ALLOPURINOL",x = prod_ai))

*薬剤名は大文字で入力されているため、大文字で検索する必要があります

*上記式は"ALLOPURINOL"を含む全てを検索します。(合剤なども含まれるようにしています)

小文字→大文字 変換サイト


2. 重複するcaseidデータを削除する

例) ALLOPURINOL <- dt[!duplicated(dt$caseid),]


3. 薬剤名を01データにする

色々な名称の薬剤が混在しているので、01データにしておくと、後で解析が楽です。

例)  ALLOPURINOL <- ALLOPURINOL %>% mutate(ALLOPURINOL = case_when(caseid >= 1 ~ "1"))


4. 必要な列以外を削除する(caseidとprod_ai列のみ残す)

例) ALLOPURINOL <- select(.data = dt, caseid, prod_ai)


5. カラム名(prod_ai)を薬剤名にする

例)  ALLOPURINOL <- dplyr::select(dt, ALLOPURINOL = prod_ai, dplyr::everything())


6. demoデータに薬剤情報を結合する

例) dt <- dplyr::left_join(demo, ALLOPURINOL, by = "caseid")


ここまでできれば、その後は、

- 重複の削除

- 除外基準を満たす行の削除

などを実施して、不均衡分析や多変量解析をやっていくことになります。


解析用のデータセットが作成できれば、rdaファイルとして保存して、EZRで解析することも可能です。


0コメント

  • 1000 / 1000