我有以下设置的矩阵:
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
谢谢!
答案 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