開発中のtableoneパッケージの最新版を試す。
ホームページ
コード
## どうしてもRで論文に直にコピペできるTable 1が書きたい、、
## ということで開発中のパッケージです。
## 主にDeducer::frequency()とdescriptive.table()をベースにしています。
## こちらの関数を使ってgithubにある最新版をテスト可能です。
## R内からのダウンロードの自動化のためcURLを必要とします。Macは入っています。
## Winは下記などからダウンロードしてください。
## http://curl.haxx.se/dlwiz/?type=bin&os=Win64&flav=-&ver=*&cpu=x86_64
LoadTableOneFromGithub <- function() {
## Define variables
urlBase <- "https://raw.github.com/kaz-yos/tableone/master/R/"
fileNames <- c("CreateCatTable.R","CreateContTable.R","print.CatTable.R","print.ContTable.R","summary.CatTable.R","summary.ContTable.R")
## Download and load all files
for (fileName in fileNames) {
download.file(url = paste0(urlBase, fileName), destfile = fileName, method = "curl")
source(fileName)
}
}
## ダウンロードと読み込み実行
LoadTableOneFromGithub()
## 使い方例
## survivalのpbcデータセットを利用します。
library(survival)
data(pbc)
### カテゴリカル変数
## edemaのなし、ちょっと、たくさんでわけてカテゴリ変数をまとめます。
## strataを指定しなければ全体がでます。
CatTable <- CreateCatTable(vars = c("status","sex","ascites","hepato","spiders"),
strata = "edema", data = pbc)
## そのままタイプするとカウント (%)の書式で表示します。
## print.CatTable()という関数が自動的に呼ばれて表示を担当します。
## 二値変数は二番目のレベルを表示します。
## 三値以上変数はすべてのレベルを表示します。
## P valueはchisq.test()を使っています。
CatTable
## 詳細な結果が見たい時はsummary methodを使ってください。
## summary.CatTable()という関数が自動的に呼ばれて表示を行います。
summary(CatTable)
## 変数によってFisher testしたいという場合はexactに変数を指定します。
print(CatTable, exact = c("sex"))
## 全部Fisherにする。
print(CatTable, exact = TRUE)
## frequencyのみ表示
print(CatTable, exact = TRUE, format = "f")
## percentのみ表示
print(CatTable, exact = TRUE, format = "p")
## Excel/Wordなどにコピペしたい時はダブルクオートを出します。
print(CatTable, quote = TRUE)
### 連続変数
## edemaのなし、ちょっと、たくさんでわけて連続変数をまとめます。
ContTable <- CreateContTable(vars = c("age","bili","chol","albumin","copper","alk.phos","ast"),
strata = "edema", data = pbc)
## そのままタイプすると平均 (SD)の書式で表示します。
## print.ContTable()という関数が自動的に呼ばれて表示を担当します。
## P valueはoneway.test()を使っています。
ContTable
## 詳細な結果が見たい時はsummary methodを使ってください。
## summary.ContTable()という関数が自動的に呼ばれて表示を行います。
summary(ContTable)
## 変数によって正規分布していないという場合はnonnormalに変数を指定します。
## median [IQR]の表示になり、kruskal.test()のp-valueにかわリます。
print(ContTable, nonnormal = c("bili","chol"))
## 全部正規分布でないときにする。
print(ContTable, nonnormal = TRUE)
## 変数の横の説明はexplain = FALSEで消せます。quoteは同様にコピペ用です。
print(ContTable, nonnormal = c("bili","chol"), quote = TRUE, explain = FALSE)