本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

Rで解析:apply関数の紹介

データフレームの行または列の連続処理に便利な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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.