これはそれほど難しいことではないようですが、私はこれに苦労しています。たとえば、次のデータフレームがあるとします。
set.seed(99)
data <- data.frame(Names=rep(c('A','B'),5),
First = rnorm(10),
Second = rnorm(10),
Third = rnorm(10))
私が欲しいのは、データフレーム全体をAの平均で割ることです。これは次のように計算できます。
a.mean <-sapply(data [data $ Names =='A'、2:4]、mean)
しかし、このようにデータフレーム全体をそのベクトルで除算しようとすると、正しい値が得られません。
normalized.data <- data[2:4]/a.mean
normalized.data$Names <- data$Names
sapply(data[normalized.data$Names == 'A', 2:4], mean)
First Second Third
0.2578018 -0.5864073 0.1156760
私が望んでいたのは、Aの正規化された平均が1に等しくなることでした。これを行う方法はありますか?