Как упомянул @Spacedman, вы должны дать более подробную информацию.Поэтому независимо от того, является ли этот ответ полезным, попробуйте изменить структуру вашего вопроса.
Я предполагаю, что у вас есть data.frame / matrix, и для каждой строки вы хотите извлечь n-е наибольшее значение.
##Set up some dummy data
R> set.seed(1)
R> v1 <- runif(10,1,10); v2 <- runif(10,1,10)
R> v3 <- runif(10,1,10); Dt <- data.frame( v1, v2, v3 )
R> head(Dt, 2)
v1 v2 v3
1 3.390 2.854 9.412
2 4.349 2.589 2.909
##Step 1: Use "apply" and "order" to order rows
##Step 2: Use subsetting to extract a particular value
R> big = function(Dt, pos=1) {
+ ordered_rows <- apply(Dt, 1, order, decreasing = TRUE)
+ positions <- rep(colnames(Dt), nrow(Dt))[as.vector(ordered_rows[pos,])]
+ return(positions)
+ }
R> big(Dt, 3)
[1] "v2" "v2" "v1" "v3" "v1" "v3" "v3" "v3" "v2" "v1"
R> big(Dt, 1)
[1] "v3" "v1" "v2" "v1" "v2" "v1" "v1" "v2" "v3" "v2"