Я пытаюсь найти наибольшее значение столбца и второе по величине значение столбца и имена обоих столбцов.Однако я изо всех сил пытаюсь получить имя второго по величине столбца.
Я пытался написать функцию lapply, которая удаляла из рассмотрения значение первого максимума, но она отбрасывала счетчик имен столбцов.Любые предложения?
temp<-data.frame(c(1,2,3,4),c(1,2,3,1),c(4,5,1,2),c(1,6,5,4),c(2,2,2,2))
colnames(temp)<-c("c1","c2","c3","c4","c5")
temp$MaxOrders<-as.numeric(apply(temp[,c(-1)],1,function(x){x[which.max(x)]}))
temp$secondMaxOrders<-as.numeric(apply(temp[,c(2,3,4,5)],1,function(x){x[order(x)[2]]}))
temp$MaxColName<-colnames(temp)[c(-1)][max.col(temp[,c(-1)],ties.method="first")]
temp
c1 c2 c3 c4 c5 MaxOrders secondMaxOrders MaxColName
1 1 1 4 1 2 4 1 c3
2 2 2 5 6 2 6 5 c4
3 3 3 1 5 2 5 3 c4
4 4 1 2 4 2 4 2 c4
ЦЕЛЬ: найти второе место по имени столбца
c1 c2 c3 c4 c5 MaxOrders secondMaxOrders MaxColName secondMaxColumnName
1 1 1 4 1 2 4 2 c3 c5
2 2 2 5 6 2 6 5 c4 c3
3 3 3 1 5 2 5 3 c4 c2
4 4 1 2 4 2 4 2 c4 c3