Вы можете просто order
Standing
и заменить Group.1
значения
averagetables$Group.1[order(averagetables$Standing)] <-
c("Feeding/Moving", "Moving/Feeding", "Standing")
averagetables
# Group.1 Moving Feeding Standing
#1 Moving/Feeding 0.05632530 0.1722892 0.7503012
#2 Feeding/Moving 0.09220779 0.2644481 0.6118506
#3 Standing 0.04863636 0.1268182 0.7993182
Если строк много и вы хотите изменить значения Group.1
только в верхних 3 значениях Standing
, мы можем использовать tail
для подмножества
inds <- tail(order(averagetables$Standing), 3)
averagetables$Group.1[inds] <- c("Feeding/Moving", "Moving/Feeding", "Standing")
Это изменит значения только в Group.1
для 1-го самого высокого, 2-го самого высокого и 3-го самого высоких значений Standing
.
данные
averagetables <- structure(list(Group.1 = c("cluster1", "cluster2",
"cluster3"
), Moving = c(0.0563253, 0.09220779, 0.04863636), Feeding =
c(0.1722892,
0.2644481, 0.1268182), Standing = c(0.7503012, 0.6118506, 0.7993182
)), row.names = c("1", "2", "3"), class = "data.frame")