是否有一种方法可以让应用程序使用两个索引值(或同等值)



我有一个数据帧,看起来像这样:

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)

我想要的是index1index2的每一个组合的最大值value(即所有AX的最大值,所有AY的最大值,等等…)

我试过这样使用tapply:

tapply(SEdata$value, SEdata$index1 & SEdata$index2, max) 

…但这显然行不通。

是否有一种方法可以让tapply与2个索引条件一起工作,或者有更好的方法来处理这个问题?

以列表形式提供这两个因素

tapply(SEdata$value, list(SEdata$index1, SEdata$index2), max)

如果我正确理解了你的问题,这里的一般结构是使用list:

> tapply(SEdata$value, list(SEdata$index1, SEdata$index2), max) 
   X  Y  Z
A 27 37 57
B 89 20 86
C 97 62 58

但是您的示例数据对于这个目的不是很令人兴奋:-)

(使用set.seed(1) .)

最新更新