簡體   English   中英

R-用矩陣的平均值替換矩陣中的值嗎?

[英]R- replace values in a matrix with the average value of its group?

我是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()函數在這種情況下是否可用,還是僅用於替換兩個已知值?

提前致謝

軟件包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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM