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))
########

#&#21015;&#24179;&#22343;&#12434;&#35336;&#31639;:averages_row&#12467;&#12510;&#12531;&#12489;
#&#23550;&#35937;&#21015;&#12434;&#25351;&#23450;:cols&#12458;&#12503;&#12471;&#12519;&#12531;
#&#26368;&#32066;&#34892;&#12395;&#12521;&#12505;&#12523;&#12434;&#35352;&#36848;&#12377;&#12427;&#21015;&#12434;&#25351;&#23450;:label_col&#12458;&#12503;&#12471;&#12519;&#12531;
#factor&#24418;&#24335;&#12398;&#12487;&#12540;&#12479;&#12395;&#12521;&#12505;&#12523;&#20301;&#32622;&#12434;&#25351;&#23450;&#12377;&#12427;&#12392;NA&#12364;&#35352;&#36848;&#12373;&#12428;&#12414;&#12377;
#&#12521;&#12505;&#12523;&#20869;&#23481;:label&#12458;&#12503;&#12471;&#12519;&#12531;
#&#32080;&#26524;&#12434;&#26368;&#32066;&#34892;&#19979;&#37096;&#12395;&#36861;&#21152;:new_row&#12458;&#12503;&#12471;&#12519;&#12531;
averages_row(df = TestData, cols = c(2, 5),
             label_col = 1, label = "Totals",
             new_row = TRUE)
#&#32080;&#26524;&#12398;&#19968;&#37096; 
     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

#&#20966;&#29702;&#20869;&#23481;&#12434;&#25351;&#23450;&#12375;&#12390;&#35336;&#31639;:summary_row&#12458;&#12503;&#12471;&#12519;&#12531;
#&#20966;&#29702;&#20869;&#23481;&#12434;&#25351;&#23450;:fun&#12458;&#12503;&#12471;&#12519;&#12531;
#&#20966;&#29702;&#12377;&#12427;&#34892;&#31684;&#22258;&#12434;&#25351;&#23450;:rows&#12458;&#12503;&#12471;&#12519;&#12531;
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)
#&#32080;&#26524;
         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

#&#25968;&#23383;&#12434;3&#26689;&#21306;&#20999;&#12426;,&#23567;&#25968;&#28857;&#12398;&#26689;&#12434;&#35519;&#25972;&#12377;&#12427;:format_numeric&#12467;&#12510;&#12531;&#12489;
#&#23567;&#25968;&#28857;&#12398;&#26689;&#12434;&#35519;&#25972;&#23450;:digits&#12458;&#12503;&#12471;&#12519;&#12531;
format_numeric(df = TestData, cols = 3, digits = 2)

#&#32080;&#26524;
     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

#&#25968;&#23383;&#12434;&#12497;&#12540;&#12475;&#12531;&#12488;&#34920;&#35352;&#12395;&#12377;&#12427;:format_percent&#12467;&#12510;&#12531;&#12489;
format_percent(df = TestData, cols = 2, digits = 2)

#&#32080;&#26524;
     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をコピーしました