我有一个数据帧,看起来像这样:有没有办法让tapply处理两个索引值(或equivilent)?
index1 <- c(rep("A", 3), rep("B", 3), rep("C", 3))
index2 <- rep(c("X", "Y", "Z"), 3)
value <- sample(1:100, 9)
SEdata <- data.frame(index1, index2, value)
我想是每一个组合index1
和index2
最大value
(即最大所有AX,最大所有AY的,等等...)
我一直在使用tapply
这样的尝试:
tapply(SEdata$value, SEdata$index1 & SEdata$index2, max)
...但是这显然不没有工作。
有没有办法让tapply
能够处理2个索引条件,还是有更好的方法来处理这个问题?
'for'循环已过时。使用更先进/高效的方法,如'data.table'。 '库(data.table); setDT(SEdata)[,list(max = max(value)),by = list(index1,index2)]' –