【发布时间】:2018-04-28 16:02:07
【问题描述】:
我有以下设置的矩阵:
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=Sample1 和Target=A、Sample=Sample2 和Target=B 的行的平均值等等。
输出应该是这样的矩阵:
result <- read.table(text='Sample Target Value
Sample1 A mean
Sample2 A mean
Sample1 B mean
Sample2 B mean' , header=TRUE)
我尝试使用aggregate() 解决此问题,但我不确定如何对其进行编码,因此它保留了Sample 和Target 列并忽略NA
谢谢!
【问题讨论】:
-
aggregate(Value ~ Sample + Target, data=d, FUN=mean) -
d和result不是 R 矩阵。它们是数据框。 -
非常感谢!这似乎可以解决问题。我对 R 很陌生,所以我不太熟悉数据框和矩阵之间的区别。但是我遇到了一个问题:在我的原始代码中,NA 在括号中,
这导致所有结果都是 NA 知道为什么会这样吗? -
编辑:我称之为矩阵并要求作为数据框的解决方案似乎是一个列表,因为
typeof(x)返回list