使用forcats处理因子 因子在 R 中用于处理分类变量。从历史上看,因子远比字符串更容易处理。因此,R 基础包中的很多函数都自动将字符串转换为因子。...准备工作 使用forcats包来处理因子,这个包提供了能够处理因子的工具,其中还包括了处理因子的大量辅助函数。...library(tidyverse) library(forcats) 创建因子 假设我们想要创建一个记录月份的变量: x1 <- c("Dec", "Apr", "Jan", "Mar") 使用字符串来记录月份有两个问题...在创建因子时,将水平设置为unique(x),或者在创建因子后再对其使用fct_inorder()函数,也可以达到这个目的: f1 <- factor(x1, levels = unique(x1))...,那么可以使用 levels() 函数: levels(f2) #> [1] "Dec" "Apr" "Jan" "Mar" 实例练习 选取forcats::gss_cat数据集,该数据集是综合社会调查数据的一份抽样
将factor的因子水平进行修改比较方便的包为forcats 测试数据集:forcats::gss_cat 数据集,该数据集是综合社会调查数据的一份抽样。...library(tidyverse) library(forcats) gss_cat ? gss_cat数据集是由一个 R 包提供的,因为当因子保存在 tibble 中时,其水平不是很容易看到的。...查看因子水平的一种方法是使用 count() 函数来直接计算数量。可以看到race有三个level。...n #> #> 1 Other 1959 #> 2 Black 3129 #> 3 White 16395 下面将两个...fct_collapse(),想要合并多个水平,那么可 fct_recode()函数的变体 fct_collapse() 函数更方便。
最后再调用Rmisc包中的multiplot()函数将这四幅图合并在一个绘图区域,col=2代表排版时一行放置二列。所以合并之前请先下载和安装Rmisc包。...dplyr包和forcats包(install.packages(“dplyr”)、install.packages(“forcats”)),第一次使用前还需要进行加载(library(dplyr)、library...从混淆矩阵可以看出,被正确预测的未离职员工人(实际未离职同时预测也是未离职的人数,即混淆矩阵第一行第一列的数值)有3317人,被正确预测的离职员工(实际离职同时预测也是离职的人数,即混淆矩阵第二行第二列的数值...)有963人,错误地预测离职与否的人数(包含实际离职但预测为未离职与实际未离职但是预测为离职的人数,即混淆矩阵的第二和第一列的数值和第一行第二列的数值相加)为124+92=216人。...然后基于这一参数值,我们将gamma和cost的参数分别设置为1,10,重新查看新生成模型fit.svm1的相关参数信息。 ?
forcats 这个包是用来处理因子的,是tidyverse包的核心,提供了处理分类变量的工具。...我们可以用因子解决这些问题。首先需要我们创建月份的因子水平列表。...Dec 创建因子后可以看到排序是按照月份进行的,并且x2里拼写错误被NA替代。 如果不设置levels,直接用factors对向量进行处理,那么会按照字母表的顺序对因子进行排序。...: install.packages("forcats") library("forcats") fct_lump:将最少或者出现最频繁的因子压缩为其他。...4119 8 Independent, near dem 2499 9 Democrat, weak 3690 10 Democrat, strong 3490 还可以将多个原来的水平修改为一个新的水平
recipes的使用其实很简单,但是由于数据预处理步骤非常多,难以记住,所以我把一些常用的recipes的预处理函数列在这里,方便大家选择。...由于数据预处理一般是作用于预测变量,有的是数值型,有的是分类变量,所以tidymodels开发了一些好用的函数,用于快速选择变量。...: recipe(HHV ~ ., data = biomass) %>% step_center(all_numeric_predictors()) # 把中心化应用于 "所有的数值型预测变量"...,和forcats包做的事情非常相似,大家可以参考我们的forcats包系列推文: R语言处理因子之forcats包介绍(1) R语言处理因子之forcats包介绍(2) R语言处理因子之forcats...包介绍(3) R语言处理因子之forcats包介绍(4) step_dummy() step_bin2factor() step_factor2string() step_string2factor()
(处理字符,查找、替换等) forcats, for factors....(处理因子问题) tidyverse的安装也很简单,在R中输入以下命令: #安装包 install.packages("tidyverse") #使用前,记得载入包 library(tidyverse...生成的数据框数据每列可以保持原来的数据格式,不会被强制性改变,即字符串,不会莫名其妙的变成因子格式; 2. 查看数据时,不再会一行显示不下,多行显示得非常丑; 3....%>% 的作用就是将iris数据用于管道后面的head函数。...当然,入门之后如果使用者在未来需要使用R完成更细腻的分析时,再分配较充足的时间学习base R。
:处理因子问题 ?...,是弱类型的,同时与data.frame有相同的语法,使用起来更方便。...#将Ozone列取负数赋值给new,然后Temp列重新计算为(Temp - 32) / 1.8 mutate(airquality, new = -Ozone, Temp = (Temp - 32)...5.4 将一列分离为多列:separat #install.packages("tidyr") #安装tidyr包 library(tidyr) 5.1 宽数据转为长数据:gather() ?...key #value:将原数据框中的所有值赋给一个新变量value #…:可以指定哪些列聚到同一列中 #na.rm:是否删除缺失值 widedata <- data.frame(person=c('Alex
它涵盖了操纵列以便按照您希望的方式获取它们的工具:这可以是计算新列,将列更改为离散值或拆分/合并列。...在示例代码中,我们将睡眠数据从以小时为单位的数据更改为分钟。...如果需要,可以通过添加.missing参数将NA更改为NA以外的其他参数(请参阅下一个示例代码)。...多个级别) ifelse()可以嵌套,但如果你想要两个以上的级别,但是使用case_when()可能更容易,它允许你喜欢的语句数量多,并且比许多嵌套的ifelse更容易阅读声明。...不幸的是,似乎没有简单的方法让case_when()返回一个有序的因子,所以你需要自己做,之后使用forcats :: fct_relevel(),或者只是一个因子()函数。
操作在tidyverse系列包中很常见,比如可以将因子变量的水平值重新编码的函数fct_recode: ### 定义一个因子变量 test_factor <- factor(letters[1:5])...(test_factor), names = 1:5) recode # 1 2 3 4 5 #"a" "b" "c" "d" "e" ### 替换 forcats::fct_recode...,也可以很简单的自己定义一个c2函数,下面有两种方式定义,都可以: ### 使用enexprs将形参值替换为实参值 c2 <- function(...){ args <- enexprs(...)...test := 1, b=2) #a b #1 2 ### 使用enquo可以将实参需要执行的环境保留下来 c3 <- function(...){ args <- enquos(...)...enquo()的快捷方式,经常用在对dplyr包中的函数的包装中,效果相当于原样传递参数值: mean_by_group <- function(dat, group, var){ var_name
可以用它解决大部分数据处理问题 tidyr - 清理数据 readr - 读入表格数据 purrr - 提供一个完整一致的工具集增强R的函数编程 tibble - 新一代数据框 stringr - 提供函数集用来处理字符数据 forcats...- 提供有用工具用来处理因子问题 有几个包没接触过,R包太多了,这些强力包还是有必要接触和学习下使用,碰到问题事半功倍。...√ tibble 1.4.2 √ dplyr 0.7.4 ## √ tidyr 0.8.0 √ stringr 1.3.0 ## √ readr 1.1.1 √ forcats...iris %>% mutate(Sepal.Length = Sepal.Length * 10) # 将该列数值变成以mm为单位 ## Sepal.Length Sepal.Width...Petal.Length Petal.Width Species ## [6] SLMm ## (或0-长度的row.names) 汇总 summarize()函数可以让我们将很多变量汇总为单个的数据点
一 载入数据并处理 library(ggplot2) # 使用mtcars数据集 data("mtcars") # 保留car name ,新建一列 mtcars$car_name <- rownames...ifelse(mtcars$mpg_z < 0, "below", "above") mtcars <- mtcars[order(mtcars$mpg_z), ] # 为展示美观,数据排序 # 改为因子...,能够保持原顺序 mtcars$car_name <- factor(mtcars$car_name, levels = mtcars$car_name) 注:改为因子使图形按照原顺序输出,很常用。...注意为了使柱状图创建柱形图而不是直方图,需要确保: (1)设置stat=identity (2)在aes()中同时提供x和y,其中x是字符或因子,y是数值。...四 Diverging Dot Plot 同样可以用点图传达相似的信息,圈圈里面加上具体的数值。
然后,将diabetes和status分别指定为一个普通因子和一个有序型因子。最后,将数据合并为一个数据框。函数str(object)可提供R中某个对象(本例中为数据框)的信息➋。...它清楚地显示diabetes是一个因子,而status是一个有序型因子,以及此数据框在内部是如何进行编码的。注意,函数summary()会区别对待各个变量➌。...将FALSE改为TRUE即允许这块代码执行。 ❏ 将一个值赋给某个向量、矩阵、数组或列表中一个不存在的元素时,R将自动扩展这个数据结构以容纳新值。...在下例中,你将创建一个名为mydata的数据框,它含有三个变量:age(数值型)、gender(字符型)和weight(数值型)。然后你将调用文本编辑器,键入数据,最后保存结果。 ? ? ?...单击列的标题,你就可以用编辑器修改变量名和变量类型(数值型、字符型)。你还可以通过单击未使用列的标题来添加新的变量。编辑器关闭后,结果会保存到之前赋值的对象中(本例中为mydata)。
上传/下载文件 这篇文章:如何使用RStudio Cloud[2] 给出了一个简单的使用教程。...里的包,都可以轻松安装和使用。...要与他人共享一个项目,单击项目设置按钮(右上角的齿轮),将“谁可以查看该项目”更改为“所有人”。然后在浏览器中复制项目地址并发送链接。注意,任何有链接的用户都可以查看你的项目。...此外,RStudio Cloud 还提供多个 R 包的 cheat sheet,如关联 R 和 Python 之间的 reticulate 包、处理因子类型数据的 forcats 包等。...使用 Overleaf 进行写作 难点可能在于,前面的注册账号吧!大家加油!这篇文章可能适合你:overleaf 注册及使用[4]。
NULL)+ theme(text = element_text(family = "Times New Roman", color = "#EEEEEE"), #这部分主题修改,自己尝试,应该有更简单的办法...这里用的日期做的时间轴,其它数值变量或因子变量也都可以,注意根据需要修改。如果不是日期变量,不需要as.Date函数转换。 # 注意起始时间一定要早于、晚于真实数据中的时间。...gganimate可以识别这两个,frame指定用哪一列做时间轴,每个时间轴会生成1张图片;cumulative表示累加,新的时间轴包含之前的数据。...1000))+ # aes中的frame和cumulative不是ggplot2的标准美学参数,不被识别,会弹出warning,忽略就好 # gganimate可以识别这两个,frame指定用哪一列做时间轴...other attached packages: ## [1] ggthemes_3.4.0 maps_3.2.0 BiocInstaller_1.28.0 ## [4] forcats
=NULL)+ theme(text = element_text(family = "Times New Roman", color = "#EEEEEE"), #这部分主题修改,自己尝试,应该有更简单的办法...这里用的日期做的时间轴,其它数值变量或因子变量也都可以,注意根据需要修改。如果不是日期变量,不需要as.Date函数转换。 # 注意起始时间一定要早于、晚于真实数据中的时间。...gganimate可以识别这两个,frame指定用哪一列做时间轴,每个时间轴会生成1张图片; cumulative表示累加,新的时间轴包含之前的数据。...1000))+ # aes中的frame和cumulative不是ggplot2的标准美学参数,不被识别,会弹出warning,忽略就好 # gganimate可以识别这两个,frame指定用哪一列做时间轴...other attached packages: ## [1] ggthemes_3.4.0 maps_3.2.0 BiocInstaller_1.28.0 ## [4] forcats
counts矩阵时,将基因有效长度信息也同时提取出来用于后续的基因表达量转化。...options(stringsAsFactors = F) library(tidyverse) # ggplot2 stringer dplyr tidyr readr purrr tibble forcats...官方更推荐使用EffectiveLength进行后续的分析,它结果中的TPM值也是根据EffectiveLength计算的。...Salmon的输出结果 Salmon的输出结果官方解释 我们一般使用tximport导入salmon的输出文件“quant.sf”(转录本的统计结果)和转录本id与gene symbol对应关系文件,...Salmon官方更推荐使用EffectiveLength进行后续的分析,认为其能更好消除测序时基因长度的影响,它结果中的TPM值也是根据EffectiveLength计算的,后续分析中可以直接采用。
> x+c(100,200,300,400,500,600) [,1] [,2] [1,] 101 404 [2,] 202 505 [3,] 303 606 上面这个更清晰看出按列进行填充...最终目的是让结果看起来更自然更简洁。 3.2向量筛选 筛选filtering就是提取向量中符合一定条件的元素。...4 常见数据结构和向量的关系及常见操作 4.1矩阵 前已述及,矩阵也是向量,特殊的向量,包含量阿哥附加的属性:行和列。所以,矩阵也有模式,例如数值型或字符型。但向量不能看做有一列或一行的矩阵。...还有合并 apply族函数在数据框中的用法 apply lapply sapply apply 如果数据框的每一列的数据类型相同,则可以对该数据框使用apply函数。或针对数据框中的某些列应用。...tapply()执行的操作是,暂时将x分组,每组对应一个因子水平(多个因子对应一组因子组合),得到x的子向量,然后对这些子向量应用函数g() > ages <- c(25,26,55,37,21,42)
之前分享过绘制KM曲线R|生存分析(1),诺莫图展示COX结果Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化,本文将简单的介绍如何使用R-survminer包绘制Cox生存分析结果的森林图...(分类变量使用数值表示) 2 森林图优化,调整 1)调整变量名称 LIHC <- within(LIHC, { gender <- factor(gender, labels = c('female...更重要的用途是当分类变量使用1,2... n的数值表示的时候,在图中不会给出分类比较的变量名称,因此需要数值标志的分类变量进行因子转换,然后再绘制。..., #数据集 main = 'Hazard ratio of LIHC', #标题 cpositions = c(0.05, 0.15, 0.35), #前三列距离...fontsize = 1, #字体大小 refLabel = 'reference', #相对变量的数值标签,也可改为1 noDigits = 3
, forcats,ggplot2 等包。...tidyr 之前的版本主要包含以下几个重要函数: gather:宽数据变成长数据; spread:长数据变成宽数据; unite:将多列按指定分隔符合并为一列...每个变量构成一列; 2. 每项观察构成一行; 3....数据的整理是一个从数据框的统计结构(变量与观察值)到形式结构(列与行)的映射。...稀疏矩阵与稠密矩阵 在矩阵中,若数值为 0的元素数目远远多于非0元素的数目,并且非 0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非 0 元素数目占大多数时,则称该矩阵为稠密矩阵
options(stringsAsFactors = F) library(tidyverse) # ggplot2 stringer dplyr tidyr readr purrr tibble forcats...efflength/1000) #每千碱基reads (Reads Per Kilobase) 长度标准化 PMSC_rpk <- sum(RPK)/1e6 #RPK的每百万缩放因子...rownames(counts),g2s$geneid),"symbol"] #匹配counts行名对应的symbol table(duplicated(symbol)) #统计重复基因名 ###使用...(counts,'Group.1') tpm <- aggregate(tpm, by=list(symbol), FUN=sum) ###使用aggregat 将symbol列中的相同基因进行合并...gene-level analysis packages library(tidyverse) # ggplot2 stringer dplyr tidyr readr purrr tibble forcats
领取专属 10元无门槛券
手把手带您无忧上云