Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中使用tidyverse重新调整因子和重新排序因子_R_Dplyr_Tidyverse_Forcats - Fatal编程技术网

在R中使用tidyverse重新调整因子和重新排序因子

在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(&

我想在数据框中使用函数relevel()reorder()。我理解relevel是如何工作的,但我不理解为什么我看不到data.frame中级别的变化。例如,假设我有iris数据集

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"