1

次のようなデータフレームがあります。

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)

私が欲しいのは、andvalueのすべての組み合わせの最大値です(つまり、すべての AX の最大値、すべての AY の最大値など...)index1index2

私はこのように使ってみtapplyました:

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

...しかし、これは明らかに機能しません。

tapply2 つのインデックス条件で作業する方法はありますか、またはこれにアプローチするより良い方法はありますか?

4

2 に答える 2

5

2 つの要因をリストとして提供する

tapply(SEdata$value, list(SEdata$index1, SEdata$index2), max)
于 2014-07-03T19:16:23.823 に答える
1

あなたの質問を正しく理解していれば、ここでの一般的な構成は次のようになります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)ます。)

于 2014-07-03T19:16:08.007 に答える