使用 tidyverse 寻找最大值

Bkk*_*Bkk 1 r max tidyverse

我是 tidyverse 的新手并试图学习它。

我想找到矩阵中一列的最大值。我将如何使用基础 R 来做到这一点:

state.name[which.max(state.x77[,"Illiteracy"])]
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我尝试使用 tidyverse 的方法:

state.x77 %>% state.name %>% which.max(.,"Illiteracy")


state.x77 %>% select(.,max(state.name))  


state.x77 %>%
group_by(state.name) %>%
summarize(max(.,))
Run Code Online (Sandbox Code Playgroud)

我真的不确定如何适应文盲部分。

感谢帮助。

nei*_*fws 5

你的第一个问题是state.x77矩阵。tidyverse 适用于数据框。所以你需要转换。

tidyverse 不喜欢将变量作为行名称 - 最好有自己的列。有一个功能:tibble::rownames_to_column.

filter 根据您指定的条件选择行,因此获得最大文盲率的一种方法是:

library(tibble)
library(dplyr)

state.x77 %>% 
  as.data.frame() %>% 
  rownames_to_column(var = "Name") %>% 
  filter(Illiteracy == max(Illiteracy))

       Name Population Income Illiteracy Life Exp Murder HS Grad Frost  Area
1 Louisiana       3806   3545        2.8    68.76   13.2    42.2    12 44930
Run Code Online (Sandbox Code Playgroud)

如果您想要的只是州名,则可以在末尾添加%>% select(Name)%>% pull(Name)