R: 幾何平均による体サイズ除去 (正規化)
- rioclu0729vet
- 2024年11月9日
- 読了時間: 1分
更新日:2024年12月10日
ある骨形態測定項目を全測定項目の幾何平均で除算することで、体サイズの影響を除去します。
#R package "dplyr"をインストール
library(dplyr) #"dplyr"を読み込み
#幾何平均を計算する関数を用意
geometric_mean <- function(x)
exp(mean(log(x), na.rm = TRUE)
#測定値にNAを含む場合は、na.rm = TRUE
#dataから数値データの行を抽出
numeric_columns <- data %>% dplyr::select_if(is.numeric)
#各行ごとにgeometric_meanを適用
GM <- apply(numeric_columns, 1, geometric_mean)
#dataにGMの行を追加
data <- dplyr::mutate(data, GM)
#正規化(各行を、各行のGMで除算)
normalized_data <- sweep(numeric_columns, 1, GM, "/")
#GMの列を削除
normalized_data <- normalized_data %>% dplyr::select(-GM)
#正規化したデータをdataに戻す
data[, name(numeric_columns)] <- normalized_data
コメント