Rで解析:data.frameの最終行に要約を追加「summaryrow」パッケージ

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

data.frameの最終行に平均や合計などの追加だけでなく、データの体裁を整えるパッケージの紹介です。処理対象の列を指定することができるので便利です。

パッケージバージョンは0.0.1。実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

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

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

#パッケージのインストール
install.packages("devtools")
devtools::install_github("merlinoa/summaryrow")

実行コマンド

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

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

###データ例の作成#####
n <- 10
TestData <- data.frame(Group = I(sample(paste0("Group ", 1:5), n, replace = TRUE)),
                       Data1 = sample(0:700, n, replace = TRUE),
                       Data2 = sample(4000:8000, n, replace = TRUE),
                       Data3 = sample(60:1000, n, replace = TRUE),
                       Data4 = sample(80:900, n, replace = TRUE))
########

#列平均を計算:averages_rowコマンド
#対象列を指定:colsオプション
#最終行にラベルを記述する列を指定:label_colオプション
#factor形式のデータにラベル位置を指定するとNAが記述されます
#ラベル内容:labelオプション
#結果を最終行下部に追加:new_rowオプション
averages_row(df = TestData, cols = c(2, 5),
             label_col = 1, label = "Totals",
             new_row = TRUE)
#結果の一部 
     Group Data1 Data2 Data3 Data4
1  Group 1 264.0  7792   675 184.0
2  Group 5 327.0  4275   632 564.0
3  Group 4 364.0  7044   496 889.0
4  Group 5 458.0  7826   486 585.0
5  Group 3 214.0  6916   323 897.0
6  Group 2 248.0  7766   270 170.0
7  Group 2  81.0  6668   492 554.0
8  Group 1 228.0  6659   256 226.0
9  Group 4   5.0  5172   859 234.0
10 Group 3 690.0  4832   463 715.0
11  Totals 287.9    NA    NA 501.8

#処理内容を指定して計算:summary_rowオプション
#処理内容を指定:funオプション
#処理する行範囲を指定:rowsオプション
summary_row(df = TestData, cols = c(2, 5), na.rm = TRUE,
            fun = sum, label_col = 1, rows = 5:6,
            label = "SUM row:5-6", new_row = TRUE)
#結果
         Group Data1 Data2 Data3 Data4
1      Group 4   649  6900   564   349
2      Group 1   139  4639   388   127
3      Group 4   505  4576   170   766
4      Group 2   248  5957   858   835
5      Group 2    31  7753   818   787
6      Group 4   307  6782   332   421
7      Group 2   599  4262   205   509
8      Group 2   127  5283   604   809
9      Group 5   354  7169   380   703
10     Group 5   100  6862   808   243
11 SUM row:5-6   338    NA    NA  1208

#数字を3桁区切り,小数点の桁を調整する:format_numericコマンド
#小数点の桁を調整定:digitsオプション
format_numeric(df = TestData, cols = 3, digits = 2)

#結果
     Group Data1    Data2 Data3 Data4
1  Group 4   649 6,900.00   564   349
2  Group 1   139 6,900.00   388   127
3  Group 4   505 6,900.00   170   766
4  Group 2   248 6,900.00   858   835
5  Group 2    31 6,900.00   818   787
6  Group 4   307 6,900.00   332   421
7  Group 2   599 6,900.00   205   509
8  Group 2   127 6,900.00   604   809
9  Group 5   354 6,900.00   380   703
10 Group 5   100 6,900.00   808   243

#数字をパーセント表記にする:format_percentコマンド
format_percent(df = TestData, cols = 2, digits = 2)

#結果
     Group   Data1 Data2 Data3 Data4
1  Group 4 649.00%  6900   564   349
2  Group 1 649.00%  4639   388   127
3  Group 4 649.00%  4576   170   766
4  Group 2 649.00%  5957   858   835
5  Group 2 649.00%  7753   818   787
6  Group 4 649.00%  6782   332   421
7  Group 2 649.00%  4262   205   509
8  Group 2 649.00%  5283   604   809
9  Group 5 649.00%  7169   380   703
10 Group 5 649.00%  6862   808   243

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

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