Учитывая следующую тестовую матрицу:
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, первый матч будет в порядке. После этого мне пришлось бы прикрепить это к матрице с новым столбцом «Имя группы»
. Как я могу это сделать?
У меня уже есть комбинация Group, Max Value:
groupMax <- aggregate (as.numeric(testMatrix[,3]), by=list( testMatrix[,1] ), max )
Способ, который я использовал для добавления столбцов в свою матрицу, работает следующим образом (давайте предположим, что уже есть матрица groupNames с GroupID, комбинации имен):
testMatrix <- cbind ( testMatrix, groupNames[match( testMatrix[,1], groupNames[,1] ), 2] )