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