我是 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)
我真的不确定如何适应文盲部分。
感谢帮助。
你的第一个问题是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)。