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    

#&#12487;&#12540;&#12479;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  
########

#&#12487;&#12540;&#12479;&#12398;&#24046;&#12434;&#34920;&#31034;:compare_df&#12467;&#12510;&#12531;&#12489;
#&#12464;&#12523;&#12540;&#12503;&#12434;&#25351;&#23450;:group_col&#12458;&#12503;&#12471;&#12519;&#12531;
#&#26908;&#20986;&#12377;&#12427;&#24046;:tolerance&#12458;&#12503;&#12471;&#12519;&#12531;
#&#26908;&#20986;&#12377;&#12427;&#24046;&#12398;&#21336;&#20301;:tolerance_type&#12458;&#12503;&#12471;&#12519;&#12531;;"ratio"/"difference"
Result <- compare_df(df_new = TestData1, df_old = TestData2,
                     group_col = "Group", tolerance = 1,
                     tolerance_type = "difference")

#compare_df&#12467;&#12510;&#12531;&#12489;&#32080;&#26524;&#12434;&#20316;&#26989;&#12501;&#12457;&#12523;&#12480;&#12395;&#20986;&#21147;:create_output_table&#12467;&#12510;&#12531;&#12489;
#&#20445;&#23384;&#12501;&#12449;&#12452;&#12523;&#24418;&#24335;:output_type&#12458;&#12503;&#12471;&#12519;&#12531;;"html"/"xlsx"
#&#12501;&#12449;&#12452;&#12523;&#21517;&#12434;&#25351;&#23450;:file_name&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12487;&#12540;&#12479;&#12398;&#22793;&#26356;&#20869;&#23481;&#12398;&#12501;&#12457;&#12531;&#12488;&#12459;&#12521;&#12540;:color_scheme&#12458;&#12503;&#12471;&#12519;&#12531;
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"))

#&#32080;&#26524;&#12434;Viewer&#12391;&#34920;&#31034;:view_html&#12467;&#12510;&#12531;&#12489;
view_html(comparison_output = Result)

#compare_df&#12467;&#12510;&#12531;&#12489;:&#23455;&#34892;&#20869;&#23481;&#12398;&#30906;&#35469;
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をコピーしました