Мы можем использовать max.col
, чтобы получить индекс строки с максимальным значением. Если в строке нет значения больше 4, мы меняем значение match
на 'none'
для этих строк.
df1$match <- paste0('label', max.col(df1))
df1$match[rowSums(df1[-ncol(df1)] > 4) == 0] <- 'none'
df1
# label1 label2 label3 match
#1 5.0 3 2 label1
#2 4.1 5 4 label2
#3 2.0 1 3 none
данные
df1 <- structure(list(label1 = c(5, 4.1, 2), label2 = c(3L, 5L, 1L),
label3 = c(2L, 4L, 3L)), class = "data.frame", row.names = c(NA,-3L))