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("グループ", 1:3), length = 10),
                        Data1 = sample(0:5, 10, replace = TRUE),
                        Data2 = sample(5:10, 10, replace = TRUE))
#データの複製
TestData2 <- TestData1
##############################

#TestData2の内容を変更する
#グループ2を除く
TestData2 <- subset(TestData2, TestData2[, 1] != "グループ2")
#Data1の内容を変更
TestData2[1, 2] <- 10
#Data2を削除
TestData2$Data2 <- NULL

#変更箇所の比較:diff_dataコマンド
patch <- diff_data(TestData1, TestData2)

#htmlで出力
render_diff(patch, file = "patch.html")

#作業フォルダに変更箇所テーブルを出力:write_diffコマンド
write_diff(patch, "patch.csv")

#出力した変更箇所テーブルを読み込み:read_diffコマンド
library("tcltk")
PatchData <- read_diff(as.character(tkgetOpenFile(title = "データパッチファイルを選択",
                                                  filetypes = '{"データパッチファイル" {".csv"}}',
                                                  initialfile = c("*.csv"))))
#データに適応:patch_data
PatchTestData1 <- patch_data(TestData1, patch)

#同一のデータ2種でそれぞれ変更があった箇所を適応し
#新たなデータを作成:merge_dataコマンド
MasterData <- TestData1
TestData1[1, 2] <- 99999
TestData2[5, 3] <- 99999
#コマンドの実行
MergeNewData <- merge_data(MasterData, TestData1, TestData2)
MergeNewData
Group Data1 Data2
1  グループ1 99999     9
2  グループ2     0    10
3  グループ3     1     7
4  グループ1     2    10
5  グループ2     1 99999
6  グループ3     4     9
7  グループ1     2     6
8  グループ2     3     6
9  グループ3     1     6
10 グループ1     4     9

htmlでの出力例

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


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

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