fct_relevel 不起作用,更改级别顺序但不更改实际数据

问题描述 投票:0回答:1

我正在尝试手动订购变量并遇到问题。我尝试以几种不同的方式使用

fct_relevel
,但这实际上并没有改变数据集中变量“organism”的顺序。当我使用
levels
检查时,顺序是正确的,但实际数据没有改变。

我也尝试了

factor
,但也没有用。

我觉得这很容易解决,但似乎无法弄清楚。将不胜感激任何帮助!

这是代表:

pacman::p_load(tidyverse)

dat <- data.frame(
    stringsAsFactors = FALSE,
    record_id = c(281L,94L,2L,
                  56L,133L,390L,272L,121L,279L,343L,314L,
                  324L,116L,225L,378L,72L,37L,254L,103L,249L,
                  319L,384L,47L,135L,39L,212L,35L,252L,1L,
                  112L,391L,88L,171L,283L,105L,131L,311L,
                  53L,150L,203L,220L,312L,4L,164L,385L,354L,
                  13L,266L,308L,111L),
    esbl_markers = c("CTX-M-27",
                     "CTX-M-15","CTX-M-15","VEB-6","CTX-M-15",
                     "CTX-M-15","CTX-M-27","CTX-M-27","CTX-M-15",
                     "CTX-M-15","CTX-M-15","CTX-M-15","CTX-M-15",
                     "CTX-M-15","CTX-M-15","VEB-6","CTX-M-15","CTX-M-15",
                     "CTX-M-15","CTX-M-15","CTX-M-15","SHV-2",
                     "CTX-M-15","CTX-M-15","CTX-M-3","CTX-M-27",
                     "CTX-M-15","CTX-M-15, OXY-1-1","CTX-M-15",
                     "SHV-187, CTX-M-15","CTX-M-15","CTX-M-15","CTX-M-15",
                     "SHV-187","CTX-M-15","CTX-M-15","CTX-M-15",
                     "CTX-M-15","CTX-M-15","SHV-7","CTX-M-15",
                     "CTX-M-15","CTX-M-27","CTX-M-15","CTX-M-15","CTX-M-3",
                     "CTX-M-15","CTX-M-15","CTX-M-15","CTX-M-15"),
    organism = as.factor(c("Klebsiella pneumoniae",
                           "Escherichia coli","Escherichia coli",
                           "Escherichia coli","Escherichia coli","Other",
                           "Klebsiella oxytoca",
                           "Escherichia coli","Klebsiella pneumoniae",
                           "Klebsiella pneumoniae","Klebsiella pneumoniae",
                           "Klebsiella pneumoniae",
                           "Escherichia coli","Escherichia coli","Other",
                           "Escherichia coli","Escherichia coli",
                           "Escherichia coli","Escherichia coli",
                           "Escherichia coli",
                           "Klebsiella pneumoniae","Other","Escherichia coli",
                           "Escherichia coli","Escherichia coli",
                           "Escherichia coli","Escherichia coli",
                           "Escherichia coli","Escherichia coli",
                           "Escherichia coli","Other",
                           "Escherichia coli","Escherichia coli",
                           "Klebsiella pneumoniae","Escherichia coli",
                           "Escherichia coli","Klebsiella pneumoniae",
                           "Escherichia coli",
                           "Escherichia coli","Escherichia coli",
                           "Escherichia coli","Klebsiella pneumoniae",
                           "Escherichia coli","Escherichia coli","Other",
                           "Klebsiella pneumoniae",
                           "Escherichia coli","Klebsiella oxytoca",
                           "Klebsiella pneumoniae","Escherichia coli"))
)

clean_dat <- dat |> 
    mutate(organism = fct_relevel(organism, c("Escherichia coli", "Klebsiella pneumoniae", "Klebsiella oxytoca", "Other")))

clean_dat <- dat |>
    ungroup() |> 
    mutate(organism = fct_relevel(organism, "Klebsiella oxytoca", after = 2))

levels(clean_dat$organism)
#> [1] "Escherichia coli"      "Klebsiella pneumoniae" "Klebsiella oxytoca"   
#> [4] "Other"
head(clean_dat)
#>   record_id esbl_markers              organism
#> 1       281     CTX-M-27 Klebsiella pneumoniae
#> 2        94     CTX-M-15      Escherichia coli
#> 3         2     CTX-M-15      Escherichia coli
#> 4        56        VEB-6      Escherichia coli
#> 5       133     CTX-M-15      Escherichia coli
#> 6       390     CTX-M-15                 Other

clean_dat <- dat |> 
    mutate(organism = factor(organism, levels = c("Escherichia coli", "Klebsiella pneumoniae", "Klebsiella oxytoca", "Other")))

创建于 2023-12-18,使用 reprex v2.0.2

会议信息
sessionInfo()
#> R version 4.2.2 (2022-10-31 ucrt)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19045)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=English_United States.utf8 
#> [2] LC_CTYPE=English_United States.utf8   
#> [3] LC_MONETARY=English_United States.utf8
#> [4] LC_NUMERIC=C                          
#> [5] LC_TIME=English_United States.utf8    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#>  [1] lubridate_1.9.2 forcats_1.0.0   stringr_1.5.0   dplyr_1.1.0    
#>  [5] purrr_1.0.1     readr_2.1.4     tidyr_1.3.0     tibble_3.2.0   
#>  [9] ggplot2_3.4.1   tidyverse_2.0.0
#> 
#> loaded via a namespace (and not attached):
#>  [1] compiler_4.2.2   pillar_1.8.1     tools_4.2.2      digest_0.6.31   
#>  [5] timechange_0.2.0 evaluate_0.20    lifecycle_1.0.3  gtable_0.3.1    
#>  [9] pkgconfig_2.0.3  rlang_1.0.6      reprex_2.0.2     cli_3.6.0       
#> [13] rstudioapi_0.14  yaml_2.3.7       xfun_0.37        fastmap_1.1.1   
#> [17] withr_2.5.0      knitr_1.42       generics_0.1.3   fs_1.6.1        
#> [21] vctrs_0.5.2      hms_1.1.2        grid_4.2.2       tidyselect_1.2.0
#> [25] glue_1.6.2       R6_2.5.1         fansi_1.0.4      rmarkdown_2.20  
#> [29] pacman_0.5.1     tzdb_0.3.0       magrittr_2.0.3   ellipsis_0.3.2  
#> [33] scales_1.2.1     htmltools_0.5.4  colorspace_2.1-0 utf8_1.2.3      
#> [37] stringi_1.7.12   munsell_0.5.0
r factors
1个回答
0
投票

可能您不需要按顺序查看数据,但您可以使用

clean_dat |> arrange(organism)
clean_dat |> arrange(desc(organism))
来完成。

© www.soinside.com 2019 - 2024. All rights reserved.