開発中の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)