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

「R」用purrr实现迭代

接下来我们学习和使用purrr包,它提供的函数可以替代很多常见的for循环应用。R基础包的apply应用函数族也可以完成类似的任务,但purrr包的函数更一致,也更容易学习。...使用purrr函数替代for循环的目的是常见的列表问题分解为独立的几部分: 对于列表的单个元素,我们能找到解决办法吗?如果可以,我们就能使用purrr将该方法扩展到列表的所有元素。...使用purrr,我们可以解决子问题,然后用管道将其组合起来。 映射函数 先对向量进行循环,然后对其每一个元素进行一番处理,最后保存结果。...,一般来说,我们应该检查一下y错误对象所对应的x值,或者使用y的正常结果进行一些处理: is_ok = y$error %>% map_lgl(is_null) x[!...purrr提供了pmap()函数,它可以列表作为参数。

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

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

(人话就是,如果要使用其他变量,就别简写啦) ps: 其实也可以通过apply 族实现,不过确实代码有点儿乱七八糟了: > lapply(s, function(x) sum(as.numeric(unlist...JSON、YAML等格式转换为R对象就经常具有这种嵌套结构。一般这种类型的数据,导入的R 后就表现为嵌套列表的格式,也就是列表的每个元素也都是列表。...例如, 需要对一组数据分别保存到文件, 就可以数据列表与保存文件名的字符型向量作为walk2()的两个数据自变量。...(x, f)相当于imap2(x, seq_along(x), f)。...purrr包的pmap类函数支持对多个列表、数据框、向量等进行向量化处理。pmap不是多个列表等作为多个自变量, 而是将它们打包为一个列表

2.4K30

MLQuant:基于XGBoost的金融时序交易策略(附代码)

,我们清理一下数据,所有列表放入一个单独的数据框,计算每种资产的每日收益并创建向上或向下的方向,这将是分类模型试图进行预测。...nest()函数数据放入方便的嵌套表,我们可以简单地对其进行map()覆盖并应用rsample包的rolling_origin()函数,这样,我们的每项资产都将有自己的rolling_origin...nested_df % mutate(duplicate_ID = ID) %>% nest(-ID) 我们时间序列数据分为多个列表,以使该analysis()列表在每个列表包含...该函数对我们数据的每项资产执行以下操作: 使用样本外t+1(assessment)数据,这些列表绑定到一个dataframe。...之后,我们使用重命名chng变量并使用~str_c("X", seq_along(.))时间序列特征变量重命名为更具动态性的变量,因此我们只需向functions字符串添加函数,而不必担心为了让模型起作用而单独重命名变量

2.8K41

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

标签:机器学习 作者前言 我使用Iris数据集训练了一系列机器学习模型,从数据的极端值合成了新数据点,并测试了许多机器学习模型来绘制出决策边界,这些模型可根据这些边界在2D空间中进行预测,这对于阐明目的和了解不同机器学习模型如何进行预测会很有帮助...初始化 首先加载一系列程序包,然后新建一个logistic函数,以便稍后log-odds转换为logistic概率函数。...( ., ~unlist(., recursive = FALSE) ) 校准数据 现在我们有了训练好的模型以及预测,我们可以这些预测重新放回数据中用ggplot进行可视化,然后使用patchwork...contains("Prediction"), names_to = "Model", values_to = "Prediction") ) 接下来,我可以通过随机抽取列表来进行绘制...点击文末“阅读原文”加入数据派团队~ 转载须知 如需转载,请在开篇显著位置注明作者和出处(自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。

1.7K40

R语言中list的批量操作

这个包的神奇之处在于能批量处理问题,例如,可以读取多个文件,跑模型的时候,可以批量输入多个参数,并把结果合并起来做比较 install.packages("purrr") 接下来我们通过实例来看下此包的具体使用...x%>%flatten_dfr() ##读取列表的同一个名称的子列表数据 pluck(x,1) ##保留满足条件的子列表数据 rep(10, 10) %>% map(sample, 5)...) %>% discard(function(x) mean(x) > 6) ##各子列表的值相互交叉处合并,形成一个新的子列表 data <- list( id = c("John",...1:10 %>% map(~ rnorm(10, .x)) ##返回数据框 1:10 %>% Map_dfc(rnorm, n = 10) ##判断需要操作的子列表的所有值 map_if(...) ##直接修改子列表 mtcars %>% modify_at(c(1, 4, 5), as.character) %>% str()##1,4,5子列表进行as.character()修改 至此,

1.8K10

如何 Python 数据管道的速度提高到 91 倍?

它以函数的输入值列表作为参数。这个列表的每个元素都将与其他元素并行地在函数运行。 你可以传递一个用户定义的函数,使用 map 函数对每个输入进行转换。...最后,使用 collect 方法收集所有并行执行的输出。 Tuplex 中方便的异常处理 我喜欢 Tuplex 的一点就是,它可以轻松地管理异常。在数据管道的错误处理是一种可怕的经历。...上面的代码返回 [2,-4],因为不能执行列表的第一个和第三个输入。 然而,有时候忽略错误是有问题的。你经常需要用不同的方法来处理它们,而 Tuplex 的 API 非常灵活,足以完成此任务。...你必须把它放在一个 .py 文件并在命令行执行。...它通过数据管道换为字节码,并并行执行,从而加快了数据管道的速度。 性能基准表明,它对代码执行的改进意义重大。不过,它的设置很简单,其语法和配置也非常灵活。

85440

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

❝最近看到一篇论文通过系统发育树添加饼图来展示数据,本节来简单介绍一下如何绘制一个类似的图。下面小编通过一个小案例来进行展示,图形过程仅供展示用,希望各位观众老爷能够喜欢,代码可直接复制粘贴运行。...purrrmap函数创建饼图列表 # 对于每个叶子,都创建一个饼图 pies <- map(1:num_tips, ~{ filter(dat_long, id == .x) %>% ggplot...(aes(y = value, fill = variable, x = "")) + geom_bar(stat = "identity") + # 绘制饼图 coord_polar...element_blank(), legend.position = "non" ) + scale_fill_brewer(palette = "Set1") # 设置颜色 }) # 为饼图列表设置名称...names(pies) <- 1:15 饼图添加到树图中 inset(p + geom_tiplab(), pies, width = 0.3, height = 0.3, hjust = -0.5

32530
领券