我有一個數據幀,看起來像這樣:有沒有辦法讓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)]' –