top of page

R: 幾何平均による体サイズ除去 (正規化)

更新日: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

 
 
 

コメント


bottom of page