次のテスト マトリックスがあるとします。
testMatrix <- matrix( c(1,1,2,10,20,30,300,100,200,"A","B","C"), 3, 4)
colnames(testMatrix) <- c("GroupID", "ElementID", "Value", "Name")
ここでは、グループごとの最大値を見つけて、その列の名前を返します。例えば、私は 1, A と 2, C を期待します。max と同点の場合、最初の一致は問題ありません。その後、これを新しい列「GroupName」でマトリックスに添付する必要があります
これどうやってするの?
グループと最大値の組み合わせを既に持っています。
groupMax <- aggregate (as.numeric(testMatrix[,3]), by=list( testMatrix[,1] ), max )
マトリックスに列を追加するために使用した方法は、次のように機能します (グループ ID と名前の組み合わせを持つマトリックス groupNames も既に存在すると仮定します)。
testMatrix <- cbind ( testMatrix, groupNames[match( testMatrix[,1], groupNames[,1] ), 2] )