Rで解析:コルセットプロットで新たな発見!「ggcorset」パッケージ


コルセットプロットは各時点のデータ分布や各データの変化の可視化に有効な手法です。コマンド例ではwide型、long型データに対応した作成コマンドと「ggplot2」パッケージのコマンドを利用した例を紹介します。

なお、本パッケージは「ggplot2」パッケージのコマンドで体裁などの調整が可能です。

パッケージバージョンは0.2.0。実行コマンドはwindows 11のR version 4.1.3で確認しています。

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("ggcorset")

実行コマンド

詳細はコマンド、各パッケージのヘルプを確認してください。

#パッケージの読み込み
library("ggcorset")

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 100
#wide型データ作成
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   Pre_Data = sample(c(1:50), n, replace = TRUE),
                   Post_Data = sample(c(1:50), n, replace = TRUE)) %>%
  mutate(ID = row_number(), .before = Pre_Data) %>%
  mutate(ChangeData = Post_Data - Pre_Data) %>%
  mutate(Check_Data = if_else(ChangeData < 0, "Decrease",
                              if_else(ChangeData > 0, "Increase", "No_Change"))) %>%
  mutate(Check_Data = factor(Check_Data, levels = c("Increase", "Decrease", "No_Change")))

#Long型データ
Long_TestData <- TestData %>%
  pivot_longer(cols = c("Pre_Data", "Post_Data"), names_to = "Time")
########


#wide型データからコルセットプロットの作成:gg_corsetコマンド
#開始点のデータ:y_var1オプション
#終了点のデータ:y_var2オプション
#データ変化量を示す基準データ:c_varオプション
#c_varオプションの基準で分割プロット:facetedオプション;TRUE/FALSE
#ユニークな各データの基準データ:groupオプション
#各データ変化量に対するSEM(標本平均の標準誤差)を表示:eyeletsオプション;TRUE/FALSE
#線の太さ:line_sizeオプション
#左右のViolinPlotの塗色:vio_fillオプション
CorsetGG <- gg_corset(data = TestData, y_var1 = "Pre_Data",
                      y_var2 = "Post_Data", c_var = "Check_Data",
                      faceted = TRUE, group = "ID", eyelets = TRUE, 
                      line_size = 0.5, vio_fill = "#ad8a80") 
#確認
CorsetGG

#long型データからコルセットプロットの作成:gg_corset_elongatedコマンド
#X軸に使用するデータ:x_varオプション
#X軸データのラベル内容:x_valsオプション
#Y軸に使用するデータ:y_varオプション
#ユニークな各データの基準データ:groupオプション
#各データ変化量に対するSEM(標本平均の標準誤差)を表示:eyeletsオプション;TRUE/FALSE
gg_corset_elongated(data = Long_TestData, x_var = "Time",
                    x_vals = c("Pre_Data", "Post_Data"),
                    y_var = "value", c_var = "Check_Data",
                    faceted = FALSE, group = "ID", eyelets = TRUE,
                    line_size = 0.5, vio_fill = "#ad8a80") 

#コルセットプロットのテーマ:theme_ggcorsetコマンド
CorsetGG +
  theme_ggcorset() 

###コルセットプロットの体裁を整える#####
CorsetGG +
  #グループのポイントプロットを追加
  geom_point(aes(col = Group), size = 3) +
  theme(legend.direction = "horizontal", 
        legend.position = "top",
        legend.title = element_text(size = 11),
        legend.text = element_text(size = 11), 
        axis.text.x = element_text(size = 12,  colour = "black",
                                   hjust = 0.5, vjust = 0), 
        axis.text.y = element_text(size = 12,  colour = "black",
                                   hjust = 1)) +
  scale_colour_manual("Test_Label",
                      breaks = c("Increase", "Decrease", "No_Change",
                                 "Group1", "Group2", "Group3", "Group4"),
                      values = MetBrewer::met.brewer("Ingres", 7)) +
  ylab("") + xlab("") +
  scale_x_discrete(labels = c("Pre", "Post")) +
  guides(colour = guide_legend(override.aes = list(size = 2),
                               byrow = TRUE))

出力例

・wide型データ用のgg_corsetコマンド

・long型データ用のgg_corset_elongatedコマンド:facetオプション;FALSE

・theme_ggcorsetコマンド

・コルセットプロットの体裁を整える:「geom_point」コマンドでグループのポイントプロットを追加


少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク