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))
#確認
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関数:ベクトル,配列,リストでデータを取得
#処理方向:MARGINオプション;1:行方向,2:列方向
#処理内容:FUNオプション

###合計: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

###列毎に並びかえ: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

###グループごとに合計#####
#tapplyを使う:tapplyはグループ毎に関数を適用します
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をコピーしました