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

R」用purrr实现迭代

迭代方式主要有两种: 命令式编程 - for和while 函数式编程 - purrr 准备工作 purrr是tidyverse核心r包之一,提供了一些更加强大编程工具。...接下来我们学习和使用purrr包,它提供函数可以替代很多常见for循环应用。R基础包中apply应用函数族也可以完成类似的任务,但purrr函数更一致,也更容易学习。...使用purrr函数替代for循环目的是常见列表问题分解为独立几部分: 对于列表单个元素,我们能找到解决办法吗?如果可以,我们就能使用purrr将该方法扩展到列表所有元素。...每种类型输出都有一个相应函数: map()用于输出列表 map_lgl()用于输出逻辑型向量 map_dbl()用于输出双精度型向量 map_chr()用于输出字符型向量 每个函数都使用一个向量(注意列表可以作为递归向量看待...比如我们现在想对某个数据集中每一个分组都拟合一个线性模型,下面示例mtcars数据集拆分为3个部分(按照气缸值分类),并对每个部分拟合一个线性模型: models = mtcars %>%

4.7K20

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

无名函数写成“~ 表达式”格式, 表达式就是无名函数定义, 用.表示只有一个自变量变量名, 用.x和.y表示只有两个自变量变量名, 用..1、..2、..3这样名字表示有多个自变量变量名...除此之外,map 还有其他变种: modify(),输入一个数据自变量和一个函数, 输出与输入数据同类型结果; map2()可以输入两个数据自变量和一个函数, 两个自变量相同下标的元素用函数进行变换...例如, 需要对一组数据分别保存到文件中, 就可以数据列表与保存文件名字符型向量作为walk2()两个数据自变量。...character ## age : double ## height : double ## weight : double pmap R向量化可以很好地处理各个自变量向量情形,...purrrpmap类函数支持对多个列表、数据框、向量等进行向量化处理。pmap不是多个列表等作为多个自变量, 而是将它们打包为一个列表。

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

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

purrr替代循环 1 purrr循环 引用知乎张敬信说法: ❝用 R 写 「循环」 从低到高有三种境界:手动 for 循环,apply 函数族,purrr 包泛函式编程。...❞ R写循环有三个境界: 手动for循环 apply循环 purrr泛函式编程 其中,手动for循环我最常用,apply系列半吊子,purrr函数一窍不通,所以要学习一下。...,..4)) 4.3 map不同后缀 *_chr,比如map_chr, map2_chr, pmap_chr等,返回字符 *_lgl,返回逻辑型向量 *_dbl,返回实数型向量 *_int,返回数字型向量...1] -0.2338953 $x3 [1] -0.3660053 $x4 [1] 0.02137338 7 map用法1:批量建模 这里使用我R包learnasreml中MET数据,进行测试...walk,类似map函数 walk2,类似map2函数 pwalk,类似pmap函数 上面的MET数据,我们可以数据按照品种分组,批量保存名为地点数据csv中。

3.2K10

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

`map`系列函数 purrrmap()提供了一系列函数,它是tidyverse中一个包。参阅R for Data Science一书。...该族包括几个函数,每个函数输入都是向量,输出是指定类型向量。例如,用这些函数对向量每个元素或数据框中每列或列表每个组件执行某些任务/函数,依此类推。 map() 创建一个列表。...map_lgl() 创建一个逻辑向量map_int() 创建一个整数向量map_dbl() 创建一个“双”或数字向量map_chr() 创建一个字符向量。.../Intro-to-R/lessons/map_purrr.html)。...library(purrr) # Load the purrr samplemeans <- map_dbl(rpkm_ordered, mean) 可以这个包含12个元素向量作为一列,添加到

6K10

「Workshop」第四期:Tidyverse 实战批量建模可视化

本次主要介绍了一些基本正则表达式用法以及公式创建和使用,然后介绍使用 tidyverse 组合拳进行批量建模和可视化。...视频还是老样子后续推送,大家可以关注 B 站或 Github 上更新(PS:今天对前几期更新了不少学习资料)。.../section-4.html 基础教程:https://www.datacamp.com/community/tutorials/r-formula-tutorial 因变量与自变量 y ~ x 公式表示...字符串转公式 实战:结合 tidyverse 对 mtcars 进行批量建模和生成 ggplot2 图形 编程变量名组合转为公式 目标数据结构与生成 分组处理 purrr 批量建模与可视化 图形拼接...[3] 小抄-因子: factors.pdf [4] 小抄-purrr: purrr.pdf [5] 小抄-正则: regex.pdf [6] 小抄-stringr: strings.pdf

78320

R海拾遗_再谈非标准评估

disp,分组变量是cyl和am,使用三个点这里传递了任意个参数 另外一种需要引用写法,这种写法需求是对参数进行修改名称时候 grouped_mean2 <- function(.data, .summary_var...(描述变量情况 使用enquo进行引用 使用as_label转换分组变量为字符串 使用paste0粘贴前缀 使用!!...,都是使用分组变量,那么对于多描述变量?...map函数 # map函数具体使用后续再考虑 # 简单说就是对第一个参数(数据集、或者list)分别使用第二参数(函数) # 在r语言中...其实相当于list #...expr函数是代码转换为表达式,但是并不执行 # 目的是和添加新变量名 summary_vars <- purrr::map(summary_vars, function(var) {

66620

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

逻辑运算是数学运算重要组成部分,但其更是计算机计算底层设置。作为一门数据处理语言,逻辑运算在R中承担着非常非常重要作用。本专题就专门为大家整理一下R语言中逻辑运算:TRUE/FALSE....---- 正文 1 基本逻辑运算符 注:这里数学运算符也整理了一下,权当回顾一下。...“与”运算(x、y以及运算结果都是向量) X | y向量逻辑“或”运算(x、y以及运算结果都是向量) x && y标量逻辑“与”运算(返回标量) x |...> TRUE & FALSE #返回[1] FALSE > 0.2 & 0 #返回[1] FALSE (3)在R语言中标量常被看作含有一个元素向量,但在逻辑运算中是存在差异。...上表中逻辑“与”【&】和逻辑“或”【 | 】是对向量逻辑运算(虽然单个标量也适用),但其返回结果是逻辑向量,是对逻辑运算中每一组元素进行逻辑运算后返回结果。

99420

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

逻辑运算是数学运算重要组成部分,但其更是计算机计算底层设置。作为一门数据处理语言,逻辑运算在R中承担着非常非常重要作用。本专题就专门为大家整理一下R语言中逻辑运算:TRUE/FALSE....---- 正文 1 基本逻辑运算符 注:这里数学运算符也整理了一下,权当回顾一下。...“与”运算(x、y以及运算结果都是向量) X | y向量逻辑“或”运算(x、y以及运算结果都是向量) x && y标量逻辑“与”运算(返回标量) x |...> TRUE & FALSE #返回[1] FALSE > 0.2 & 0 #返回[1] FALSE (3)在R语言中标量常被看作含有一个元素向量,但在逻辑运算中是存在差异。...上表中逻辑“与”【&】和逻辑“或”【 | 】是对向量逻辑运算(虽然单个标量也适用),但其返回结果是逻辑向量,是对逻辑运算中每一组元素进行逻辑运算后返回结果。

5.4K10

R」dplyr 行式计算

你可以在 rowwise() 中提供“标识符”变量,这些变量将在你调用 summarise() 时候保留,因此它行为类似于变量传入 group_by(): df <- tibble(name =...它们允许你避免显式循环和/或使用 apply() 或 purrr::map 家族函数。...mutate() 列切分然后传入 length(y) 时候,分组 mutate 使用 [ 操作,而行式 mutate 使用 [[。...rowwise()不仅适用于返回长度为1向量函数(又名总结函数);如果结果是列表,它可以与任何函数一起工作。...作为替代方案,我们建议使用 purrr map() 函数执行逐行操作。但是,这很有挑战性,因为您需要根据变化参数数量和结果类型来选择映射函数,这需要相当多 purrr 函数知识。

6.2K20

R入门?从Tidyverse学起!

这种入门学习路径属于base R first,学习流程基本是先了解变量类型、数据结构,再深入点就会学到循环与自定义函数。...数据整理 tibble格式 R对多变量数据标准保存形式是 dataframe,而tibble是dataframe进化版,它有如下优点: 1....%>% 作用就是iris数据用于管道后面的head函数。...(对数据分组) 1. filter 只选取Species列中,值为virginica数据 (这里也是用到了管道符,filter函数作用于iris数据) ?...统计:broom broom是一个用于数学建模包,以回归分析为例,R各种回归分析往往不会返回一个整齐data frame结果,而broom 则帮助我们直接统计结果转化为data frame格式直接统计结果转化为

2.5K30

Rpurrr包用于循环迭代

purrr中有多个迭代函数,可以用于快速解决循环迭代问题,purrr中常用迭代函数有mapmap2、walk、reduce等等。...map map(.x, .f, ...) map函数接受一个向量、列表,对其每一个元素执行函数。 数据框其实是一种格式化表示列表,所以也可以使用map迭代。 map函数默认返回列表。...# [1] 3.758 # # $Petal.Width # [1] 1.199333 # # $Species # [1] NA 如果返回值需要是一个数值向量,而不是列表,也可以使用map_dbl...# 公式:用于简化R匿名函数格式 # 例如如下两种方式是等价 iris %>% map(function(x) mean(x, na.omit=T)) iris %>% map(~mean(., na.omit...iris %>% dplyr::select(-Species) %>% map(summary) %>% map_dbl(3) map2 map2(.x, .y, .f, ...) map2可以对两个向量

1.5K10

「Workshop」第二期:程序控制与数据操作流

涉及编程数据和代码都会放到 https://github.com/XSLiuLab/Workshop 推荐图书 《R for Data Science》[1] 《R 语言编程指南》 《R 实战》 其他推荐见...recode_factor mutate, transmute mutate_ add_row add_column rename rownames_to_column, column_to_rowname 向量化函数...逻辑值 mean, sum 位置 dplyr:: first last nth 排序 quantile min max 分布 IQR mad sd var count summarize 简单汇总 分组汇总...基础语法一致,也可以使用 tidyverse 处理 整数索引 逻辑索引 命名索引 进一步学习参考小抄、文档和《R 语言编程指南》 后几期主题 本期未讲述内容???...正则表达式与字符串处理:base 与 stringr 列表处理与迭代计算:purrr 统计建模:stats 与 broom 绘图:graphics 与 ggplot2 函数编程:apply家族和purrr

1.5K30

独家 | 不同机器学习模型决策边界(附代码)

数据集包含有关英国统计员Ronald Fisher在1936年收集3种不同植物变量信息。...需要注意是这些图最终将是二维,因此我们仅在两个变量上训练机器学习模型,但是对于这两个变量每种组合而言,它们将是取boundary_lists data frame中前两个变量。...我将使用到上面图中每个数据点训练以下模型: 逻辑回归模型 支持向量机+线性核 支持向量机+多项式核 支持向量机 +径向核 支持向量机+sigmoid核 随机森林 默认参数下XGBoost模型 单层Keras...方面的专家,所以我相信有更好模型产生更好决策边界,但是用purrrmap来训练不同机器学习模型是件很有趣事。...未经许可转载以及改编者,我们依法追究其法律责任。 点击“阅读原文”拥抱组织

1.7K40

Hadley Wickham 采访节选(一)

╮(╯▽╰)╭ ” Hadley Wickham,一个R圈如雷贯耳的人物,仅仅列举几个他开发R包你就能知道他分量了:ggplot2、dplyr、stringr、plyr、purrr、lubridate...其次是“对象类型一致性”(consistency of object type)。每个stringr函数全都把输入字符串作为“第一个”变量,而且返回特定类型结果。...大猫注:对象类型一致性不仅仅指“把重要变量永远放到第一个参数”,更多时候指“一个函数只可能返回一种类型结果”。...例如base Rsapply就不是对象类型一致,因为sapply会首先尝试返回一个向量,如果实在无法coerce成向量,那么就返回一个list;而 tidyver 库中有个叫做purrr包,他有个函数叫...map_dbl,和sapply很像,区别就是map_dbl永远只返回double类型,如果结果不是double就报错,因此,map_dbl是“对象一致”

82230

R编程(七:向量类型详解2)

因为向量化,我选择R image.png 我们所有操作,都可以对向量每一个元素执行。...同样操作也可以用来取子集: 一些使用注意事项 一般来说,c() 是创建向量语法,但R 也提供了一些例外:可不要因为它们养成坏习惯了哦。 2....尽可能向量化 我觉得下面的内容讲更全:https://www.yuque.com/mugpeng/rr/01r-de-bian-cheng-xiao-lu 这里提一下Vectorize函数,可以标量..., "hot", "cold")) 用户 系统 流逝 0.070 0.005 0.086 这里有人还做了一张图:https://thatdatatho.com/vectorization-r-purrr...但如果,花两小时时间lapply 修改为doLapply 就为了提高脚本0.1s 速度,我劝你还不如打两把游戏。 5. 记住这句话 image.png

33750
领券