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


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

パッケージバージョンは0.0.0.9000。実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.3で確認しています。


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

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

#パッケージのインストール
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 4 649.0  6900   564 349.0
2  Group 1 139.0  4639   388 127.0
3  Group 4 505.0  4576   170 766.0
4  Group 2 248.0  5957   858 835.0
5  Group 2  31.0  7753   818 787.0
6  Group 4 307.0  6782   332 421.0
7  Group 2 599.0  4262   205 509.0
8  Group 2 127.0  5283   604 809.0
9  Group 5 354.0  7169   380 703.0
10 Group 5 100.0  6862   808 243.0
11  Totals 305.9    NA    NA 554.9

#処理内容を指定して計算: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

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

スポンサードリンク

おすすめコンテンツ


スポンサードリンク