问题标签 [purrr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8373 浏览

r - tidyverse - 将命名向量转换为 data.frame/tibble 的首选方法

使用tidyverse很多我经常面临将命名向量转换为data.frame/的挑战,tibble其中列是向量的名称。
这样做的首选/tidyversey 方式是什么?
编辑:这与:thisthis github-issue有关

所以我想要:

变成这样:

我可以通过例如:

用例示例:

这使

0 投票
2 回答
1430 浏览

r - 如何在列表列上应用函数并在 dplyr 和 purrr 中返回另一个函数?

我想获取列表列中每个向量中的前 5 个值,并将其作为保存为列表的数据框中的新列返回。

我尝试使用 lmap 但收到错误消息

谢谢!

0 投票
2 回答
651 浏览

r - 使用 purrr 应用累积函数

对于 x 的每个位置,我想计算有多少数字 > 5。这是我的代码,使用 for 循环:

你能帮我用purrr吗?这里可以使用 purrr::reduce 吗?

0 投票
1 回答
73 浏览

r - modelr:交叉验证模型拟合数据集中符合标准的所有变量

我有一个数据集,其中包含许多(因子)变量,前缀为“cat_”。

我希望能够使用 tidy 框架计算每个因子变量与响应变量的成对 k 折交叉验证回归 R2。

对于如下几个变量,很容易跨折叠计算。

问题:

  • 如何将其推广到任意数量的变量?

  • 为什么我必须明确地为函数使用命名空间访问器purrr::map_dblstats::lm(如果我删除命名空间访问器,上面的逻辑将不起作用)?


编辑:

以下代码获取每个变量的 R2,但不能将其展平为与数据集中变量数相等的列数。

0 投票
1 回答
753 浏览

json - 在 R 中映射 json 并创建组合多个列表级别的数据框 [重构建议]

我正在映射json级别(x)的一系列条目。对于每个级别 x,都有嵌套级别 (x+1),其中包含一些我想要组合到数据框中的信息以及来自 x 的一些信息。

这是我用来在 R中学习purrr和处理的玩具示例。json

例如

制作数据框:

我已经解决了这个问题,但它map在 x 的每一层都使用了嵌套,并且非常脆弱

有没有更好的方法来做到这一点?上述代码的担忧:

  • 有没有不必嵌套 map 调用的替代方法?是否有一些purrr我不知道我可以使用的功能?
  • 处理丢失键的更好方法?在上面,测试数据的元素 22 没有姓氏键。如果不将 surfname 包装在 an 中ifelse,它将失败。从技术上讲,我应该将所有内容都包含在tibble调用中,ifelse但是它变得非常冗长并且感觉不是正确的解决方案。
0 投票
2 回答
676 浏览

r - modelr:用重采样数据拟合多个模型

在 中实现的数据科学 (TM) 的整洁模型modelr,重新采样的数据使用list-columns进行组织:

可以对maplist-column 中的每个训练数据集建立模型,并通过ping list-columntrain来计算性能指标。maptest

如果需要对多个模型执行此操作,则需要对每个模型重复此操作。

这使:

问题:

如果要探索的模型数量很大,这会很快变得很麻烦。modelr提供fit_with允许迭代多个模型(以多个公式为特征)但似乎不允许像train上面的模型中那样的列表列的函数。我假设其中一个*map*函数系列可以实现这一点(invoke_map?),但无法弄清楚如何。

0 投票
3 回答
1277 浏览

r - r purrr 问题使用 walk with save()

我正在使用带有保存的 purrr::walk 函数寻求帮助。

我有四个要写入四个单独文件的 dfs 的列表。这是我使用的代码和我收到的错误。.x 和 ... 都是相同长度的列表。我确定我犯了一些简单的错误,但不确定那是什么。谢谢您的帮助。

会话信息

0 投票
1 回答
971 浏览

r - 使用 purrr::map 进行递归函数调用

我在数据框中有一个列表,我想用它purrr::map()来测试是否有任何NULL元素,然后删除它们。

虽然我能够使用 sapply 做到这一点,但地图不起作用。我读了https://cran.r-project.org/web/packages/purrr/purrr.pdf,但我不知道我错过了什么。

这是我的 sapply 代码——这很好用:

这是我尝试过的一些事情purrr::map,但它们不起作用。

以下是我尝试的四件事:

一个)

b)

C)

d)

有人可以纠正我的错误,并让我知道我在上述四个选项中做错了什么吗?


数据:

0 投票
0 回答
744 浏览

r - 什么时候用map,什么时候用apply?

以下做同样的事情。什么时候使用地图,什么时候使用?

或者:

0 投票
3 回答
1664 浏览

r - 提取模型摘要并将其存储为新列

我是purrr范式的新手,并且正在努力解决它。

根据几个来源,我已经设法嵌套数据框,在嵌套数据上运行线性模型,从每个 lm 中提取一些系数,并为每个 lm 生成摘要。我想做的最后一件事是从摘要中提取“r.squared”(我原以为这是我想要实现的最简单的部分),但无论出于何种原因,我都无法获得语法正确的。

这是我所拥有的 MWE:

这是我提取失败的 r.squared 的尝试:

这与 RStudio 网站上给出的示例表面上相似:

这可行,但是我希望 r.squared 值位于一个新列中(因此是 mutate 语句),并且我想了解为什么我的代码不起作用而不是解决问题。

编辑:

这是我使用以下解决方案的工作解决方案:

编辑2:

因此,事实证明该错误来自于在 summary = map(fit, ~summary) 行中包含波浪号键。我的猜测是使对象成为嵌套的函数,而不是摘要本身返回的对象。如果有人想插话,希望对此有权威的回答。

需要明确的是,这个版本的原始代码可以正常工作: