在R中使用tidyverse重新调整因子和重新排序因子
我想在数据框中使用函数relevel()和reorder()。我理解relevel是如何工作的,但我不理解为什么我看不到data.frame中级别的变化。例如,假设我有iris数据集在R中使用tidyverse重新调整因子和重新排序因子,r,dplyr,tidyverse,forcats,R,Dplyr,Tidyverse,Forcats,我想在数据框中使用函数relevel()和reorder()。我理解relevel是如何工作的,但我不理解为什么我看不到data.frame中级别的变化。例如,假设我有iris数据集 iris iris$Species <- factor(iris$Species, levels = c("versicolor","setosa","virginica"), labels = c(&
iris
iris$Species <- factor(iris$Species, levels = c("versicolor","setosa","virginica"),
labels = c("versicolor","setosa","virginica"))
我没有得到的是,虽然我看到了数据集中级别的变化,但当我调用数据集时,我没有看到顺序的变化,这对我来说是至关重要的。
这就是我所看到的
Species
setosa
...
versicolor
...
virginica
...
这就是我想看到的
Species
versicolor
...
setosa
...
virginica
...
感谢您对tidyverse实际更改订单的任何帮助。我们需要重新分配以对原始数据进行更改。除了更改
级别的顺序
,如果行顺序也需要更改,我们可能需要排列
数据
iris <- iris %>%
mutate(Species=factor(Species)) %>%
mutate(Species=fct_relevel(Species,c("versicolor","setosa","virginica"))) %>%
arrange(Species)
检查级别
levels(iris$Species)
[1] "versicolor" "setosa" "virginica"
你好,阿克伦,谢谢你的回答。我真的很感激。是的,我仍然看到水平的变化,但物种的顺序保持不变。我正在上传问题的截图。对不起,我可能是wrong@LDT为此,您需要
安排
我想您只需要更改级别
我可以按我喜欢的顺序安排吗?@LDT请检查更新
library(magrittr)
iris %<>%
mutate(Species=factor(Species)) %<>%
mutate(Species=fct_relevel(Species,c("versicolor","setosa","virginica")))%>%
arrange(Species)
levels(iris$Species)
[1] "versicolor" "setosa" "virginica"