データフレームの行または列の連続処理に便利な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
少しでも、あなたの解析が楽になりますように!!