精选内容/技术社群/优惠产品,尽在小程序
立即前往

「R」用purrr实现迭代

一起复习一下吧~ 函数有3个好处: 更容易看清代码意图 更容易对需求变化做出反应(改变) 更容易减少程序bug 除了函数,减少重复代码的另一种工具是迭代,它的作用在于可以对多个输入执行同一种处理,比如对多个列或多个数据集进行同样的操作...$cyl) %>% map(function(df) lm(mpg ~ wt, data = df)) 因为在R中创建匿名函数的语法比较复杂,所以purrr提供了一种更方便的快捷方式——单侧公式...1] 0.0 2.3 NA quietly()函数与safely()的作用基本相同,但前者结果不包含错误对象,而是包含输出、消息和警告: x = list(1, -1) x %>% map(quietly...因为长度都相同,所以将各个参数保存在一个数据框中: params = tibble::tribble( ~mean, ~sd, ~n, 5, 1, 1, 10, 5, 3,...reduce结合dplyr中的full_join()将它们轻松合并为一个数据框。

4.8K20

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

JSON、YAML等格式转换为R对象就经常具有这种嵌套结构。一般这种类型的数据,导入的R 后就表现为嵌套列表的格式,也就是列表中的每个元素也都是列表。...除此之外,map 还有其他的变种: modify(),输入一个数据自变量和一个函数, 输出与输入数据同类型的结果; map2()可以输入两个数据自变量和一个函数, 将两个自变量相同下标的元素用函数进行变换...但是对于列表、数据框等多个自变量则不能自动进行向量化处理。...purrr包的pmap类函数支持对多个列表、数据框、向量等进行向量化处理。pmap不是将多个列表等作为多个自变量, 而是将它们打包为一个列表。...算法 Map-reduce是大数据技术中的重要算法, 在Hadoop分布式数据库中主要使用此算法思想。

2.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    R-Purrr的使用,加速数据处理

    R-Purrr的使用,加速数据处理 Tidyverse中包含一个purrr程序包,之前在看数据处理分析时候,一直看到别人的code中,涵盖purrr,map函数,但是一直不知道这个是干什么的,现在发现purrr...Purrr 主要是替换for循环的使用。 Purrr引入了map函数以及一些用于操纵list的新函数。cheatsheet可以速查一些关于Tidyverse使用方法。...这篇文章是快速教你使用purrr。 因为Purrr的操作对象基本上都是关于list,所以对R的基本Number,Vector,dataframe及list又个了解。...但是,您需要确保在每次迭代中都返回一个具有一致列名的数据框。 map_df将自动绑定每次迭代的行。...Modify() 要注意的是另一个函数是Modify(),它与map函数一样,但是始终返回与输入对象具有相同类型的对象 library(tidyverse) modify(c(1, 4, 7), addTen

    71620

    Day7:R语言课程 (R语言进行数据可视化)

    学习目标 使用扩展包“ggplot2”绘制图表。 使用“map”函数进行数据结构迭代。 导出在R环境之外使用的图片。...1.设置数据框以进行可视化 在本课中需要制作与每个样本中的平均表达量相关的多个图,还需要使用所有可用的metadata来适当地注释图表。 观察rpkm数据。...使用R base包提供的函数'mean()': mean(rpkm_ordered[,"sample1"]) 只想要其中一个样本(数据框中的1列)的平均值,可以这样实现,但要从所有12个样本中获取此信息该如何实现...例如,用这些函数对向量中的每个元素或数据框中的每列或列表的每个组件执行某些任务/函数,依此类推。 map() 创建一个列表。 map_lgl() 创建一个逻辑向量。.../Intro-to-R/lessons/map_purrr.html)。

    6K10

    人工智能大模型的好处之任意数据结构的转换

    以下是构建的列表示例: # 创建一个班级学生名单的字符型向量 student_names <- c("Alice", "Bob", "Charlie", "David", "Eva") # 创建一个包含学生考试成绩的数据框..., 'S100a8', 'Cxcl3') ) 这个r里面的list有多个元素,每个元素里面的都是向量,我首先问人工智能大模型:如何把这个list变成数据框,然后之前的元素名字是一个列?...如果列表中的向量长度不相等,直接使用 rbindlist 或者 Reduce 结合 cbind 会遇到困难,因为这些函数通常要求所有向量具有相同的长度以便能够形成一个规则的数据框。...(df) 使用 purrr 包的 map_dfr 函数:map_dfr 可以应用于列表的每个元素,并将结果合并为一个数据框。...= c(7) ) # 使用 map_dfr 转换每个向量为数据框,然后合并 df map_dfr(mylist, ~data.frame(.x, check.names = FALSE))

    8910

    R:purrr包用于循环迭代

    purrr中有多个迭代函数,可以用于快速解决循环迭代的问题,purrr中常用的迭代函数有map、map2、walk、reduce等等。...map map(.x, .f, ...) map函数接受一个向量、列表,对其每一个元素执行函数。 数据框其实是一种格式化表示的列表,所以也可以使用map迭代。 map函数默认返回列表。...# 公式:用于简化R的匿名函数格式 # 例如如下两种方式是等价的 iris %>% map(function(x) mean(x, na.omit=T)) iris %>% map(~mean(., na.omit...系列函数,还有一批形式类似的walk函数,如walk、walk2、pwalk等等,他们用于一些不需要返回值的操作,如绘图和读写文件。...、累乘: reduce(1:100, `+`) #[1] 5050 reduce(1:5, `*`) #[1] 120 有些时候,reduce是很方便的,比如可以使用它计算数据框的最大值和最小值: reduce

    1.6K10

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

    假如将新的单细胞数据集整合到现有数据中,使用这些FCS方法需要重新计算每个细胞的基因集富集分数。这个步骤可能是繁琐且资源密集的。...相反,基于单个细胞表达等级的FCS,如AUCell、UCell、singscore、ssGSEA、JASMINE和Viper,只需要计算新添加的单细胞数据集的富集分数,而无需重新计算所有细胞的基因集富集分数...因此,在整合不同样本的情况下,即使使用相同基因集为相同细胞打分,也会产生不同的富集评分; SCSE 使用基因集所有基因的归一化的总和来量化基因集富集分数; Vision 使用随机签名的预期均值和方差对基因集富集分数进行...1.irGSEA支持Seurat 对象(V5或V4),Assay对象(V5或V4) # 我们通过SeuratData包加载示例数据集(注释好的PBMC数据集)作为演示 #### Seurat V4对象...下面的例子中,我将介绍如何筛选血管生成相关的基因集。

    2.6K11

    「R」dplyr 行式计算

    这篇文章,我们将学习围绕rowwise() 创建的 row-wise 数据框的 dplyr 操作方法。 本文将讨论 3 种常见的使用案例: 按行聚合(例如,计算 x, y, z 的均值)。...为了查看它是怎样工作的,我们从创建一个小的数据框开始: df <- tibble(id = 1:6, w = 10:15, x = 20:25, y = 30:35, z = 40:45) df #>...它们允许你避免显式的循环和/或使用 apply() 或 purrr::map 家族函数。...分组数据框(每个组恰好有一行)和行数据框(每个组总是有一行)之间有一个重要的区别。...作为替代方案,我们建议使用 purrr 的 map() 函数执行逐行操作。但是,这很有挑战性,因为您需要根据变化的参数数量和结果类型来选择映射函数,这需要相当多的 purrr 函数知识。

    6.2K20

    ggplot2在系统发育树上添加饼图

    ❝最近看到一篇论文通过系统发育树添加饼图来展示数据,本节来简单介绍一下如何绘制一个类似的图。下面小编通过一个小案例来进行展示,图形过程仅供展示用,希望各位观众老爷能够喜欢,代码可直接复制粘贴运行。...❞ 论文 加载R包 library(ggtree) library(tidyverse) 构建数据 set.seed(1234) # 设置随机数种子以确保结果的可重复性 num_tips <- 15...# 设置叶子的数量 # 生成一个随机树 tr <- rtree(num_tips) p <- ggtree(tr) + xlim(0, 3) 构建饼图数据 # 使用dplyr创建数据框,包含四个变量...dat_long % mutate(id = row_number()) %>% gather(key = "variable", value = "value", -id) # 使用...purrr的map函数创建饼图列表 # 对于每个叶子,都创建一个饼图 pies map(1:num_tips, ~{ filter(dat_long, id == .x) %>% ggplot

    43330

    R语言进阶笔记5 | purrr替代循环

    purrr替代循环 1 purrr循环 引用知乎张敬信的说法: ❝用 R 写 「循环」 从低到高有三种境界:手动 for 循环,apply 函数族,purrr 包泛函式编程。...❞ R写循环有三个境界: 手动for循环 apply循环 purrr泛函式编程 其中,手动for循环我最常用,apply系列半吊子,purrr函数一窍不通,所以要学习一下。...*_dfr, 返回数据库行合并 *_dfc, 返回数据框列合并 5 匿名函数写法 一元的map,可以写为 .x,或者..1 二元的map2,可以写为.x,.y,或者..1,..2 三元的pmap,可以写为...,其中 .x 为对象 .f 为函数 ...为.f函数的其它参数 所以,计算每一列的平均值,也可以写为: > map(dat,mean,na.rm=T) $x1 [1] -0.1100182 $x2 [...1] -0.2338953 $x3 [1] -0.3660053 $x4 [1] 0.02137338 7 map的用法1:批量建模 这里使用我的R包learnasreml中的MET数据,进行测试

    3.4K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券