根据在一个衬里中删除 NA 的列的最大值获取名称

Getting name based on max value of a column with NA removed in one liner

我正在尝试获取具有最大值快速睡眠的动物的名称。这就是我现在正在做的,但希望有更好的方法 returns 精确值。

msleep = ggplot2::msleep
msleep[order(msleep$sleep_rem, na.last=TRUE, decreasing=TRUE), ]

上面returns我是排序后的数据,但是在Rstudio的控制台中很难看到。有更好的方法吗?

我们可以使用 which.max 获取 'sleep_rem' 中最大值的索引,并使用它来对 'name'

进行子集化
msleep$name[which.max(msleep$sleep_rem)]
#[1] "Thick-tailed opposum"

为了更好地查看,您可以 arrange 数据和 select 仅感兴趣的列 -

library(dplyr)

msleep %>% arrange(desc(sleep_rem)) %>% select(name, sleep_rem)

# A tibble: 83 x 2
#   name                           sleep_rem
#   <chr>                              <dbl>
# 1 Thick-tailed opposum                 6.6
# 2 Giant armadillo                      6.1
# 3 North American Opossum               4.9
# 4 Big brown bat                        3.9
# 5 European hedgehog                    3.5
# 6 Thirteen-lined ground squirrel       3.4
# 7 Domestic cat                         3.2
# 8 Long-nosed armadillo                 3.1
# 9 Golden hamster                       3.1
#10 Golden-mantled ground squirrel       3  
# … with 73 more rows