Если у вас есть фрейм данных, вы можете использовать which.max
, чтобы получить максимальное значение индекса в каждом столбце и использовать этот индекс для поднабора значений из первого столбца.
df$V1[sapply(df[-1], which.max)]
#[1] "d" "c" "a" "a" "c"
Если у вас есть матрица (которая выглядит более вероятной), тогда все значения превратятся в символ из-за первого столбца, в этом случае вы можете сделать:
mat[apply(mat[, -1], 2, function(x) which.max(as.numeric(x))), 1]
#[1] "d" "c" "a" "a" "c"
данные
df <- structure(list(V1 = c("a", "b", "c", "d"), V2 = 1:4, V3 = c(5L,
8L, 9L, 2L), V4 = c(7L, 2L, 2L, 6L), V5 = c(9L, 3L, 4L, 1L),
V6 = c(4L, 5L, 8L, 3L)), row.names = c(NA, -4L), class = "data.frame")
mat <- structure(c("a", "b", "c", "d", "1", "2", "3", "4", "5", "8",
"9", "2", "7", "2", "2", "6", "9", "3", "4", "1", "4", "5", "8",
"3"), .Dim = c(4L, 6L))