Rで解析:apply関数の紹介

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

データフレームの行または列の連続処理に便利なapply関数の紹介です。

実行コマンドはR version 4.2.3で確認しています。

スポンサーリンク

実行コマンド

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

###データ例の作成#####
TestData <- data.frame(Group = rep(LETTERS[1:4], time = 2),
                       Data_1 = rep(1:4, time = 2),
                       Data_2 = rep(5:8, time = 2))
#&#30906;&#35469;
TestData
#   Group Data_1 Data_2
# 1     A      1      5
# 2     B      2      6
# 3     C      3      7
# 4     D      4      8
# 5     A      1      5
# 6     B      2      6
# 7     C      3      7
# 8     D      4      8
#######

#apply&#38306;&#25968;:&#12505;&#12463;&#12488;&#12523;,&#37197;&#21015;,&#12522;&#12473;&#12488;&#12391;&#12487;&#12540;&#12479;&#12434;&#21462;&#24471;
#&#20966;&#29702;&#26041;&#21521;:MARGIN&#12458;&#12503;&#12471;&#12519;&#12531;;1:&#34892;&#26041;&#21521;,2:&#21015;&#26041;&#21521;
#&#20966;&#29702;&#20869;&#23481;:FUN&#12458;&#12503;&#12471;&#12519;&#12531;

###&#21512;&#35336;:sum#####
apply(X = TestData[2:3], MARGIN = 1, FUN = sum)
# [1]  6  8 10 12  6  8 10 12
apply(X = TestData[2:3], MARGIN = 2, FUN = sum)
Data_1 Data_2 
# 20     52

###&#21015;&#27598;&#12395;&#20006;&#12403;&#12363;&#12360;:sort#####
apply(X = TestData[2:3], MARGIN = 2, 
      FUN = sort, decreasing = TRUE)
#      Data_1 Data_2
# [1,]      4      8
# [2,]      4      8
# [3,]      3      7
# [4,]      3      7
# [5,]      2      6
# [6,]      2      6
# [7,]      1      5
# [8,]      1      5

###&#12464;&#12523;&#12540;&#12503;&#12372;&#12392;&#12395;&#21512;&#35336;#####
#tapply&#12434;&#20351;&#12358;:tapply&#12399;&#12464;&#12523;&#12540;&#12503;&#27598;&#12395;&#38306;&#25968;&#12434;&#36969;&#29992;&#12375;&#12414;&#12377;
apply(X = TestData[2:3], MARGIN = 2, 
      FUN = function(x){tapply(x, TestData$Group, sum,
                               na.rm = TRUE)})
#   Data_1 Data_2
# A      2     10
# B      4     12
# C      6     14
# D      8     16

少しでも、あなたの解析が楽になりますように!!

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