Rで解析:データの変更箇所をらくらく確認!便利です。「daff」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

Rでデータを操作していると「データの変更箇所」の確認に時間がかかる場合があります。本パッケージを利用することで変更箇所の確認が容易になります。なお、変更箇所を示す内容はhtml,csvファイルで出力可能です。htmlファイルの出力は利用範囲が広いと思います。

また、「同じ形式のデータを同じ条件で変更する」コマンドや「変更箇所を比較し適応した新しいデータを作成する」コマンドも収録されています。ぜひ、活用ください。

これは、便利なパッケージだと思います。

パッケージのバージョンは0.1.4。R version 3.2.1でコマンドを確認しています。


スポンサーリンク

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

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

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

実行コマンドの紹介

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

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

#####準備#####################
#データ例の作成
TestData1 <- data.frame(Group = rep(paste0("&#12464;&#12523;&#12540;&#12503;", 1:3), length = 10),
                        Data1 = sample(0:5, 10, replace = TRUE),
                        Data2 = sample(5:10, 10, replace = TRUE))
#&#12487;&#12540;&#12479;&#12398;&#35079;&#35069;
TestData2 <- TestData1
##############################

#TestData2&#12398;&#20869;&#23481;&#12434;&#22793;&#26356;&#12377;&#12427;
#&#12464;&#12523;&#12540;&#12503;2&#12434;&#38500;&#12367;
TestData2 <- subset(TestData2, TestData2[, 1] != "&#12464;&#12523;&#12540;&#12503;2")
#Data1&#12398;&#20869;&#23481;&#12434;&#22793;&#26356;
TestData2[1, 2] <- 10
#Data2&#12434;&#21066;&#38500;
TestData2$Data2 <- NULL

#&#22793;&#26356;&#31623;&#25152;&#12398;&#27604;&#36611;:diff_data&#12467;&#12510;&#12531;&#12489;
patch <- diff_data(TestData1, TestData2)

#html&#12391;&#20986;&#21147;
render_diff(patch, file = "patch.html")

#&#20316;&#26989;&#12501;&#12457;&#12523;&#12480;&#12395;&#22793;&#26356;&#31623;&#25152;&#12486;&#12540;&#12502;&#12523;&#12434;&#20986;&#21147;:write_diff&#12467;&#12510;&#12531;&#12489;
write_diff(patch, "patch.csv")

#&#20986;&#21147;&#12375;&#12383;&#22793;&#26356;&#31623;&#25152;&#12486;&#12540;&#12502;&#12523;&#12434;&#35501;&#12415;&#36796;&#12415;:read_diff&#12467;&#12510;&#12531;&#12489;
library("tcltk")
PatchData <- read_diff(as.character(tkgetOpenFile(title = "&#12487;&#12540;&#12479;&#12497;&#12483;&#12481;&#12501;&#12449;&#12452;&#12523;&#12434;&#36984;&#25246;",
                                                  filetypes = '{"&#12487;&#12540;&#12479;&#12497;&#12483;&#12481;&#12501;&#12449;&#12452;&#12523;" {".csv"}}',
                                                  initialfile = c("*.csv"))))
#&#12487;&#12540;&#12479;&#12395;&#36969;&#24540;:patch_data
PatchTestData1 <- patch_data(TestData1, patch)

#&#21516;&#19968;&#12398;&#12487;&#12540;&#12479;2&#31278;&#12391;&#12381;&#12428;&#12382;&#12428;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#31623;&#25152;&#12434;&#36969;&#24540;&#12375;
#&#26032;&#12383;&#12394;&#12487;&#12540;&#12479;&#12434;&#20316;&#25104;:merge_data&#12467;&#12510;&#12531;&#12489;
MasterData <- TestData1
TestData1[1, 2] <- 99999
TestData2[5, 3] <- 99999
#&#12467;&#12510;&#12531;&#12489;&#12398;&#23455;&#34892;
MergeNewData <- merge_data(MasterData, TestData1, TestData2)
MergeNewData
Group Data1 Data2
1  &#12464;&#12523;&#12540;&#12503;1 99999     9
2  &#12464;&#12523;&#12540;&#12503;2     0    10
3  &#12464;&#12523;&#12540;&#12503;3     1     7
4  &#12464;&#12523;&#12540;&#12503;1     2    10
5  &#12464;&#12523;&#12540;&#12503;2     1 99999
6  &#12464;&#12523;&#12540;&#12503;3     4     9
7  &#12464;&#12523;&#12540;&#12503;1     2     6
8  &#12464;&#12523;&#12540;&#12503;2     3     6
9  &#12464;&#12523;&#12540;&#12503;3     1     6
10 &#12464;&#12523;&#12540;&#12503;1     4     9

htmlでの出力例

緑(+++)は追加/変更、赤(—)は削除、例には示されていませんが濃い紫(->)変更箇所となります。着色されていませんがcsvファイルも同じ内容です。


少しでも、あなたのウェブや実験の解析が楽になりますように!!

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