Rで解析:データを比較して違いをラクラク把握「compareDF」パッケージ

Rの解析に役に立つ記事

2つのデータを比較して、違いを確認するパッケージの紹介です。結果はhtmlファイルだけでなくエクセルでも保存可能です。

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

スポンサーリンク
スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
#データ1
TestData1 <- tibble(Group = paste0("Group ", 1:4),
                    Data1 = 1:4, Data2 = LETTERS[1:4])
# A tibble: 4 x 3
#  Group   Data1 Data2
#  <chr>   <int> <chr>
#1 Group 1     1 A    
#2 Group 2     2 B    
#3 Group 3     3 C    
#4 Group 4     4 D    

#データ2
TestData2 <- tibble(Group = paste0("Group ", 1:5),
                    Data1 = c(1, 5, 3, 6, 4),
                    Data2 = LETTERS[1:5])
# A tibble: 5 x 3
#  Group   Data1 Data2
#  <chr>   <dbl> <chr>
#1 Group 1     1 A    
#2 Group 2     5 B    
#3 Group 3     3 C    
#4 Group 4     6 D    
#5 Group 5     4 E  
########

#データの差を表示:compare_dfコマンド
#グループを指定:group_colオプション
#検出する差:toleranceオプション
#検出する差の単位:tolerance_typeオプション;"ratio"/"difference"
Result <- compare_df(df_new = TestData1, df_old = TestData2,
                     group_col = "Group", tolerance = 1,
                     tolerance_type = "difference")

#compare_dfコマンド結果を作業フォルダに出力:create_output_tableコマンド
#保存ファイル形式:output_typeオプション;"html"/"xlsx"
#ファイル名を指定:file_nameオプション
#データの変更内容のフォントカラー:color_schemeオプション
create_output_table(comparison_output = Result,
                    output_type = "html",
                    file_name = "Test.html",
                    color_scheme = c(addition = "#52854C", removal = "#FC4E07",
                                     unchanged_cell = "#999999",
                                     unchanged_row = "#293352"))

#結果をViewerで表示:view_htmlコマンド
view_html(comparison_output = Result)

#compare_dfコマンド:実行内容の確認
Result
#$comparison_df
#  Group   chng_type Data1 Data2
#1 Group 2         +     2     B
#2 Group 2         -     5     B
#3 Group 4         +     4     D
#4 Group 4         -     6     D
#5 Group 5         -     4     E

#$comparison_table_diff
#  Group chng_type Data1 Data2
#1     =         +     +     =
#2     =         -     -     =
#3     =         +     +     =
#4     =         -     -     =
#5     -         -     -     -
  
#$change_count
#    Group changes additions removals
#1 Group 2       1         0        0
#2 Group 4       1         0        0
#3 Group 5       0         0        1

#$change_summary
#old_obs   new_obs   changes additions  removals 
#5         4         2         0         1 

#$group_col
#[1] "Group"

#$change_markers
#[1] "+" "-" "="

#$comparison_table_ts2char
#    Group chng_type Data1 Data2
#1 Group 2         2     2     B
#2 Group 2         1     5     B
#3 Group 4         2     4     D
#4 Group 4         1     6     D
#5 Group 5         1     4     E

#$comparison_table_diff_numbers
#  Group chng_type Data1 Data2
#1     0         2     2     0
#2     0         1     1     0
#3     0         2     2     0
#4     0         1     1     0
#5     1         1     1     1

出力例

結果のフォントは緑色がdf_newオプション、赤色がdf_oldオプションに指定したデータ。chng_typeは「tolerance」オプション、「tolerance_type」オプションで指定した条件による判定です。なお、共通して存在するデータは表示されません。

・create_output_tableコマンド:output_type = “html”

・create_output_tableコマンド:output_type = “xlsx”


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

タイトルとURLをコピーしました