首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「R」用purrr实现迭代

接下来我们将学习使用purrr包,它提供函数可以替代很多常见for循环应用。R基础包apply应用函数族也可以完成类似的任务,但purrr函数更一致,也更容易学习。...使用purrr函数替代for循环目的是将常见列表问题分解为独立几部分: 对于列表单个元素,我们能找到解决办法吗?如果可以,我们就能使用purrr将该方法扩展到列表所有元素。...(即mean()、median()sd()),而不是在所有元素循环所需跟踪记录以及保存结果。...当检查多个模型,有时候我们需要提取像R方这样摘要统计量,要想完成这个任务,我们需要先运行summary()函数,然后提取结果r.squared: models %>% map(summary...当使用映射函数重复多次操作,某次操作失败概率大大增加。

4.7K20

R:purrr包用于循环迭代

purrr中有多个迭代函数,可以用于快速解决循环迭代问题,purrr中常用迭代函数有map、map2、walk、reduce等等。...map map(.x, .f, ...) map函数接受一个向量、列表,对其每一个元素执行函数。 数据框其实是一种格式化表示列表,所以也可以使用map迭代。 map函数默认返回列表。...=T)) # 字符:用于快速提取内容 # 例如如下两种方式是等价 iris %>% dplyr::select(-Species) %>% map(summary) %>%map_dbl(~....如果此时使用map系列函数,那么就会返回一个值为NULL列表。...”操作,如累加、累乘: reduce(1:100, `+`) #[1] 5050 reduce(1:5, `*`) #[1] 120 有些时候,reduce是很方便,比如可以使用它计算数据框最大值最小值

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

一步解决R中文字符问题

❝今天会员交流群内有朋友询问图片预览遇到问题该如何解决,本节就来详细介绍一下R图形预览及导出会遇到问题,个人观点仅供参考。...❝Cairo是R一个包,用于创建向量图形(如PDF、SVG)位图图形(如PNG、BMP、GIF、JPEG)。它基于Cairo图形库,该库是一个跨平台图形API,支持多种输出设备。...❞ 安装cairo包 install.packages("Cairo") 修改Graphics设置 ❝要访问修改这些设置,可以在RStudio按照以下步骤操作: 1.打开RStudio 2.在菜单栏...(全局选项...) 3.在弹出Options窗口中,左侧菜单选择General 在General设置,找到Graphics这里列出了上述一些设置项,选择Cairo点击Apply->OK ❞ 完成上述设置后...以上操作为Macos系统 windows系统则需要在代码中使用showtext包进行字体渲染,若不进行渲染则导出pdf字体会乱码 install.packages("showtext") library

22010

R||R语言基础(三)_R包

今天继续学习R语言基础R包使用,以R包:dplyr为例 数据准备 01 R包安装 install.packages(“dplyr”) 或BiocManager::install(“dplyr”)...:102),] 这里“,”怎么理解呢,在我们上一期推文中提到,提取元素z[x,y]指代提取z第x行,第y列,如果我们只需要提取行,则应该写作z[x,],同理,如果只需要提取列,应该写作z[,y]...() 按列筛选 1)按列号筛选 select(test,1) select(test,c(1,5)) #提取第一列第五列 由上图可以看出直接提取也是可以 2)按列名筛选 select(test...),mean(Sepal.Length), sd(Sepal.Length)) dplyr两个实用技能 1.count统计某列各元素出现次数 count(test,Species) 2.管道操作...其核心包有ggplot、readr、tibble、purrr、 tidyr 、dplyr、ggplot、forcats stringr8个. 我们这里用dplyr包,因此可以使用管道。

3.3K50

irGSEA:基于秩次单细胞基因集富集分析整合框架

假如将新单细胞数据集整合到现有数据使用这些FCS方法需要重新计算每个细胞基因集富集分数。这个步骤可能是繁琐且资源密集。...这个过程需要考虑所有样本,容易受到样本背景信息影响; PLAGE 对跨细胞基因表达矩阵进行标准化,并提取奇异值分解作为基因集富集分数; Zscore 聚合了基因集中所有基因表达,通过细胞间平均值标准差缩放表达...; AddModuleScore需要先计算基因集中所有基因平均值,再根据平均值把表达矩阵切割成若干份,然后切割后每一份随机抽取对照基因(基因集外基因)作为背景值。...因此,在整合不同样本情况下,即使使用相同基因集为相同细胞打分,也会产生不同富集评分; SCSE 使用基因集所有基因归一化总和来量化基因集富集分数; Vision 使用随机签名预期均值方差对基因集富集分数进行...使用全局表达谱对差异分数进行标准化。 标准化这一步容易受样本构成影响。 JASMINE 根据在单个细胞中表达基因基因排名表达基因基因集富集度计算近似平均值。

1.4K11

R 数据整理(十一: 用purrr包实现更花样匿名函数使用

将无名函数写成“~ 表达式”格式, 表达式就是无名函数定义, 用.表示只有一个自变量自变量名, 用.x.y表示只有两个自变量自变量名, 用..1、..2、..3这样名字表示有多个自变量自变量名...需要注意是, 如果map()等泛函无名函数需要访问其它变量的话, 需要理解其变量作用域或访问环境。另外, 无名函数其它变量在每次被map()应用到输入列表元素都会重新计算求值。...提取列表元素简写 map 除了调用无名函数可以简写,在提取列表元素也有简写方法。 较为复杂数据, 有时表现为列表列表, 每个列表元素都是列表或者向量。...JSON、YAML等格式转换为R对象就经常具有这种嵌套结构。一般这种类型数据,导入R 后就表现为嵌套列表格式,也就是列表每个元素也都是列表。...虽然结果sum 一致,但是reduce 可以对元素为复杂类型列表进行逐项合并计算。

2.4K30

Hadley Wickham 采访节选(二)

purrr设计目的并不是说要实现base R无法实现功能,只是base R这些底层函数使用起来太不方便而且容易出错,而purrr则用一种统一、安全方式去重新打包了这些函数。...但是话说回来,在我最近写包里面,我都尽量不使用purrr。 (purrrlogo) ? “ 等等,你为什么不愿意在你最近写这个包里面用purrr呢?...最近我不是在开发Bigrquiry这个包嘛(大猫:一个使用RGoogle BigQuiry提取数据API),我发现如果我用了purrr,那么我就很难避免不用dplyr,因为purrr严重依赖dplyr...,而dplyr又依赖其他东西。...在下一个版本dplyr,我将引入“quasi-quotation”这个概念,它让用dplyr写函数比以往要方便许多。

67720

「r」dplyr join 与 base 里 merge 存在差异

今天在使用连接操作发现:虽然都是合并操作函数,dplyr 包里 *_join() 基础包里面的 merge() 存在差异,不同数据结构,结果也会存在偏差。...,这两个列表是没有任何差异。...相同数据,不同操作函数存在差异 在进行连接操作,我们会发现 dplyr 结果会报错!...所以使用 dplyr 提供连接函数报错是正常,但有意思是,基础包提供 merge() 函数可以完成连接操作,真是优秀(感兴趣朋友可以看下测试下 merge 函数源代码)!...如果 be_join 不为空,进行如下循环: 如果存在,则将这个子集 to_join 按共同列合并 如果不存在,使用循环位移一位,将当前 be_join 第 2 个子集移动为 第 1 个。

1.5K30

这些逻辑运算符你都使用正确了吗?

> TRUE & FALSE #返回[1] FALSE > 0.2 & 0 #返回[1] FALSE (3)在R语言中标量常被看作含有一个元素向量,但在逻辑运算是存在差异。...上表逻辑“与”【&】逻辑“或”【 | 】是对向量逻辑运算(虽然单个标量也适用),但其返回结果是逻辑向量,是对逻辑运算每一组元素进行逻辑运算后返回结果。...因此,此处引入另外两个不常用但需要了解逻辑运算符: x&&y:标量逻辑“与”运算,判断逻辑xy只要包含一个"&"运算TRUE行即返回TRUE标量 x||y :标量逻辑“或”运算,判断逻辑向量...FALSEy[2] TRUE [1] TRUE > x[4]||y[4] #x[4] FALSEy[4] FALSE [1] FALSE 2 异或(xor) 说明:当对应元素不等返回TRUE。...all(x==0)) #对x数据库做列操作,判断每一列所有元素是否为0,,然后渠非"!"

99420

R包基础实操—tidyverse包

核心软件包是ggplot2、dplyr、tidyr、readr、purrr、tibble、stringrforcats,它们提供了建模、转换可视化数据功能。...其中,readr包用于读取数据,tidyr包用于整理数据,dplyr包用于数据转换,ggplot2包用于数据可视化,purrr包用于函数式编程。...1 readr包:快速读写 1-1 readr包提供了几个新函数,能够更快读取文件 readr包主要函数有: read_csv,read_tsv,read_table,read_delim, write_csv...(.x, .f): 返回整数型向量 map_dfr(.x, .f): 返回数据框列表,再 bind_rows 按行合并为一个数据框 map_dfc(.x, .f): 返回数据框列表,再 bind_cols.../p/f8b9e6bd52a2 [7] dplyr新功能解读: https://zhuanlan.zhihu.com/p/145839517 [8] 优雅循环迭代:purrr包: https://zhuanlan.zhihu.com

3.2K30

R 语言 逻辑运算:TRUEFALSE | 专题3

> TRUE & FALSE #返回[1] FALSE > 0.2 & 0 #返回[1] FALSE (3)在R语言中标量常被看作含有一个元素向量,但在逻辑运算是存在差异。...上表逻辑“与”【&】逻辑“或”【 | 】是对向量逻辑运算(虽然单个标量也适用),但其返回结果是逻辑向量,是对逻辑运算每一组元素进行逻辑运算后返回结果。...因此,此处引入另外两个不常用但需要了解逻辑运算符: x&&y:标量逻辑“与”运算,判断逻辑xy只要包含一个"&"运算TRUE行即返回TRUE标量 x||y :标量逻辑“或”运算,判断逻辑向量...FALSEy[2] TRUE [1] TRUE > x[4]||y[4] #x[4] FALSEy[4] FALSE [1] FALSE 2 异或(xor) 说明:当对应元素不等返回TRUE。...all(x==0)) #对x数据库做列操作,判断每一列所有元素是否为0,,然后渠非"!"

5.4K10

从一件数据清洗小事说起

” 本期“大猫R语言公众号”由“村长”供稿。村长,数据科学、指弹吉他及录音工程爱好者,浙大金融学博士在读,在data.table包MongoDB使用上有较多经验。...这是一个类json格式嵌套数据,其中存在两个变量,第一个变量是cusnum作为序号,第二个是一个类json嵌套变量,里面以类jsno格式嵌套了很多变量。 需要将这个数据集转换成如下格式: ?...其实这一期这么扯淡讲这么多事情,只是为了说明一点,data.table真的有很好性能,尤其在处理海量数据方面(在分组特别多时候,相比dplyrpandas有2x~10x提升,来自官方文档)。...dplyr哲学Linux类似:每个组件就做好一件事,当把所有组件拼在一起之后就是一个全功能包了。这个理论利弊共存。...好处来说,因为每个组件只做一件事(比如group、mutate),所以在开发时候耦合度低,容易开发维护,而且对于使用者来说也“更容易学习”。然而,他弊端也是非常明显,首先是效率不高。

67010

2023.4生信马拉松day7-R语言综合应用

列表每个元素对应原来每个元素拆分结果 -(2)列表使用不方便——simplify = T简化结果,简化成矩阵 -(3)注意:之前提到过,矩阵某一列不能单独转换数据类型,需要把矩阵转换成数据框再转换某列数据类型...-(2)用多次嵌套避免中间变量不直观,且容易出错; ——设置彩虹括号,可以在多层嵌套看清楚哪个括号哪个括号是一对: options -- code -- display --use rainbow...require(tidyr)) install.packages('tidyr') #根据一个包是否library成功来决定要不要安装这个包 练习7-1 图片 # 1.读取group.csv,第二列中提取圈出来信息...-(4)no:逻辑值为FALSE返回值 -(5)支持单个逻辑值,也支持多个逻辑值组成向量 -(6)相当于对向量每个元素逐个进行判断,然后对判断结果F/T进行逐个替换; i = 1 ifelse...如何挑出30个数里最大五个 -(1)排序 -(2)取最后五个 图片 3.向量/列表隐式循环-lapply() 对列表/向量每个元素实施相同操作 lapply(1:4,rnorm) #批量画图

3.6K80

使用 R 语言 PDF 文档中提取表格

由于一个知识星球小伙伴急需学习如何 PDF 文档中提取表格,所以先插这个课,「使用 R 语言处理 netCDF 数据」系列课程下次再发新哈。...本课程介绍了如何使用 R 语言 WHO(世界卫生组织)官网上下载新冠疫情每日报告以及如何从这些报告表格里面提取数据。.../ 这个非常简单,我思路是直接获取网页所有 标签 href 属性,然后过滤出链接含 .pdf ,最后再用一个循环下载所有的 PDF 文件即可。... PDF 里面提取表格数据 我选择最新一个 PDF 做演示:20200523-covid-19-sitrep-124.pdf,下面使用 tabulizer 包进行数据提取,不过这个包依赖于 rJava...# 使用 tabulizer 包 library(tabulizer) library(purrr) library(tidyr) library(tidyverse) f <- "pdf/20200523

3.5K10

DESeq2差异表达分析

注意:要从我们在单细胞分析工作流程结束创建Seurat对象中提取子集并提取细胞,我们可以使用类似于以下代码: # Bring in Seurat object seurat <- readRDS("...6小后,将每个条件下8个样本混合在两个最终池(刺激细胞对照细胞)。 对照刺激混合样本分别鉴定了12,13812,167个细胞(去除二倍体后)。...我们可以使用SingleCellExperient包函数来提取不同组件。首先我们可以查看一下实验数据计数元数据。...为此,我们将以匹配样本ID因子级别的顺序,对单个细胞元数据样本进行重新排序,然后只与该样本对应第一个细胞中提取样本信息。...让我们对B细胞执行DE分析,它是我们向量第一个元素向量中提取B细胞: clusters[1] 我们可以使用此输出对B细胞运行DE分析。首先,我们可以仅将元数据计数设置为B细胞。

5.4K33

R07-R语言综合应用

# 3.按位置提取字符串,提取5-9字符str_detect(x2,"h") # 4.字符检测str_starts(x2,"T") # 4.字符检测,字符串是否以T开头str_ends(x2...() %>%head(50) %>% pheatmap::pheatmap()3.条件循环一、条件语句if(一个逻辑值){ } 如果()条件T成立,{}函数被运行,如果F不成立,则不执行...循环for(i in x){CODE} # 对x里每个元素i进行同一操作for( i in 1:4){print(i)} #对1:4每个元素进行循环输出批量画图par(mfrow = c..., 2, mean)apply(test, 1, sum)向量/列表隐式循环---lapplylapply(list, FUN, …) #对列表/向量每个元素实施相同操作lapply(1:4,rnorm...) #对1:4每个元素进行rnorm操作5.数据框连接inner_join #取交集连接full_join #全连接left_join(test1,test2,by="name") #左连接

5210
领券