1

私はRに慣れていないので、答えるのに十分簡単な質問があります。どんな助けでも大歓迎です。

状況は、次のようなタブ区切りのデータ マトリックス (data matrix.txt) があり、最後の列にグループ情報が含まれています。

               sampleA    sampleB     sampleC   Group
    obs11        23.2      52.5       -86.3      1
    obs12       -86.3      32.5       -84.7      1
    obs41       -76.2      35.8       -16.3      2 
    obs74       23.2       32.5       -86.8      2
    obs82       -86.2      52.8       -83.2      3
    obs38       -36.2      59.5       -74.3      3

各グループの値をそのグループの平均値に置き換えたい

Rで行または列の平均ではなくグループの平均を計算するにはどうすればよいですか?

また、この値を使用して元の値を置き換えるにはどうすればよいですか? この状況で replace() 関数は使用できますか、それとも 2 つの既知の値を置き換えるためだけに使用できますか?

前もって感謝します

4

1 に答える 1

1

パッケージ ddply がうまくいくはずです。

dat <- as.data.frame(matrix(runif(80),ncol=4))
dat$group <- sample(letters[1:4],size=20,replace=T)
head(dat)

library(plyr)
ddply(.data = dat, .variables =.(group), colwise(mean))

結果

  group        V1        V2        V3        V4
1     a 0.4741673 0.7669612 0.5043857 0.5039938
2     b 0.3648794 0.5776748 0.4033758 0.5748613
3     c 0.1450466 0.5399372 0.2440170 0.5124578
4     d 0.4249183 0.3252093 0.5467726 0.4416924
于 2012-11-21T16:47:25.647 に答える