Найти максимум по группе и вернуть еще один столбец

Учитывая следующую тестовую матрицу:

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, первое совпадение будет в порядке. После этого мне нужно прикрепить это к матрице с новым столбцом & quot; GroupName & quot;

Как я могу это сделать?

У меня уже есть комбинация Максимальное значение группы:

groupMax <- aggregate (as.numeric(testMatrix[,3]), by=list( testMatrix[,1] ), max )

Способ, которым я использовал для добавления столбцов в свою матрицу, работает следующим образом (предположим, что уже существует матрица groupNames с GroupID, комбинациями имен):

testMatrix <- cbind ( testMatrix, groupNames[match( testMatrix[,1], groupNames[,1] ), 2] ) 

Ответы на вопрос(4)

Ваш ответ на вопрос