矩阵中3行的平均值

时间:2017-11-15 12:19:22

标签: r matrix aggregate mean

我有以下设置的矩阵:

d <- read.table(text='Sample     Target    Value
Sample1    A          NA
Sample1    A          2
Sample1    A          3
Sample2    A          1
Sample2    A          2
Sample2    A          3
Sample1    B          1
Sample1    B          2
Sample1    B          3
Sample2    B          NA
Sample2    B          2
Sample2    B          3',  header=TRUE)

我想对每个数据重复采取Value列的方法。 所以包含Sample=Sample1Target=ASample=Sample2Target=B的所有行的平均值等等。

输出应该是这样的矩阵:

result <- read.table(text='Sample     Target    Value
Sample1    A          mean
Sample2    A          mean
Sample1    B          mean
Sample2    B          mean' ,  header=TRUE)

我尝试使用aggregate()解决此问题,但我不确定如何对其进行编码,因此它会保留SampleTarget列并忽略NA

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为aggregate在这种情况下是可以的。尝试:

aggregate(d$Value, list(d$Sample, d$Target), mean, na.rm = TRUE)
  Group.1 Group.2   x
1 Sample1       A 2.5
2 Sample2       A 2.0
3 Sample1       B 2.0
4 Sample2       B 2.5