forcats 这个包是用来处理因子的,是tidyverse包的核心,提供了处理分类变量的工具。 Jan Mar > f2 <- x1 %>% factor() %>% fct_inorder() > f2 [1] Dec Apr Jan Mar Levels: Dec Apr Jan Mar forcats 下面详细介绍一下这个包的用途: The goal of the forcats package is to provide a suite of tools that solve common problems the least/most frequent values of a factor into “other”. ### installation # The easiest way to get forcats : install.packages("forcats") library("forcats") fct_lump:将最少或者出现最频繁的因子压缩为其他。
将factor的因子水平进行修改比较方便的包为forcats 测试数据集:forcats::gss_cat 数据集,该数据集是综合社会调查数据的一份抽样。 library(tidyverse) library(forcats) gss_cat ? gss_cat数据集是由一个 R 包提供的,因为当因子保存在 tibble 中时,其水平不是很容易看到的。
✔ tibble 3.2.1 ✔ dplyr 1.1.1 ## ✔ tidyr 1.3.0 ✔ stringr 1.5.0 ## ✔ readr 2.1.4 ✔ forcats step_filter_missing() step_lincomb() step_zv() step_nzv() step_rm() step_select() 创建虚拟变量 比如创建哑变量等,还包括对因子型变量的常见处理,和forcats 包做的事情非常相似,大家可以参考我们的forcats包系列推文: R语言处理因子之forcats包介绍(1) R语言处理因子之forcats包介绍(2) R语言处理因子之forcats包介绍(3) R语言处理因子之 forcats包介绍(4) step_dummy() step_bin2factor() step_factor2string() step_string2factor() step_num2factor
使用forcats处理因子 因子在 R 中用于处理分类变量。从历史上看,因子远比字符串更容易处理。因此,R 基础包中的很多函数都自动将字符串转换为因子。 准备工作 使用forcats包来处理因子,这个包提供了能够处理因子的工具,其中还包括了处理因子的大量辅助函数。 library(tidyverse) library(forcats) 创建因子 假设我们想要创建一个记录月份的变量: x1 <- c("Dec", "Apr", "Jan", "Mar") 使用字符串来记录月份有两个问题 Apr Jan Mar 如果想要直接访问因子的有效水平集合,那么可以使用 levels() 函数: levels(f2) #> [1] "Dec" "Apr" "Jan" "Mar" 实例练习 选取forcats
base ggplot2(版本一) ggplot2(版本二) Rmarkdown dplyr stringr forcats
patchwork) library(readr) library(RColorBrewer) library(ggplot2) library(VisCello) library(viridis) library(forcats counts of each lineage assayed ----- ## Figure 1C (left) p2 <- combined@meta.data %>% ggplot(aes(y=forcats ::fct_rev(forcats::fct_infreq(cluster_anno_l1)), fill = cluster_anno_l1)) + geom_bar combined$cluster_anno_l1,combined$orig.ident)) ## Figure 1D (right) p3 <- ggplot(data=cell_counts, aes(x=forcats
进行测试:test() 快捷键:Ctrl + Shift + T test() 调用其他包函数: use_package() -> `DESCRIPTION`文件添加 `Imports::forcats ` use_package("forcats") R包readme说明文件:use_readme_rmd() + build_readme() 创建数据:usthis::use_data() - >
MetBrewer) library(grid) R包版本 sessionInfo() other attached packages: [1] MetBrewer_0.2.0 lubridate_1.9.3 forcats
)) p <- p_ABCD + p_sane + plot_annotation( title = 'Make the legend order = data order, with <em>forcats</em>
library(tidyverse) 软件配置 R4.3.3 other attached packages: [1] geomtextpath_0.1.1 lubridate_1.9.3 forcats
tidyverse) R包版本号 版本号尽量保持一致,不然可能会有报错参生 sessionInfo() other attached packages: [1] lubridate_1.9.3 forcats
包版本 ther attached packages: [1] MetBrewer_0.2.0 ggsci_3.0.0 ggnewscale_0.4.9 lubridate_1.9.3 forcats
igraph_1.6.0 ggforce_0.4.2 [7] graphlayouts_1.0.2 ggraph_2.1.0 lubridate_1.9.3 forcats
其中针对收入水平变量,我们通过dplyr包中的mutate()函数和forcats包中的fct_relevel()函数将数据集中的salary变量按照指定的低、中、高的顺序进行排列,因此在调用之前先安装和加载 dplyr包和forcats包(install.packages(“dplyr”)、install.packages(“forcats”)),第一次使用前还需要进行加载(library(dplyr)、library (forcats))。
加载R包 library(tidyverse) library(janitor) library(glue) library(ggtext) library(forcats) library(ggbeeswarm
tidyverse packages ───────────────────────── tidyverse 2.0.0 ── ✔ dplyr 1.1.4 ✔ readr 2.1.5 ✔ forcats
加载R包 library(tidyverse) library(janitor) library(glue) library(ggtext) library(forcats) library(ggbeeswarm
加载R包 pkgs = c('tidyverse', 'forcats', 'gtools', 'ggplot2', 'ggpubr', 'cowplot', 'scales',
& Linux) or Cmd + Shift + T (macOS) 有些时候我们想要在自己的包中调用其他包的函数,可以使用use_package()函数 比如想要对因子创建排序的频率表,需要引用forcats ::fct_count(): > use_package("forcats") ✓ Adding 'forcats' to Imports field in DESCRIPTION ● Refer to functions with `forcats::fun()` 这个函数向DESCRIPTION文件中添加了Imports::forcats: Package: toypackages Title: LazyData: true Roxygen: list(markdown = TRUE) RoxygenNote: 7.1.1 Suggests: testthat Imports: forcats 0.3.4 ✓ tibble 3.0.3 ✓ dplyr 1.0.0 ✓ tidyr 1.1.0 ✓ stringr 1.4.0 ✓ readr 1.3.1 ✓ forcats
tidyverse就是他将自己所写的包整理成了一整套数据处理的方法,包括ggplot2,dplyr,tidyr,readr,purrr,tibble,stringr, forcats。 (处理字符,查找、替换等) forcats, for factors.