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
少しでも、あなたのウェブや実験の解析が楽になりますように!!