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コメント