问题标签 [pmap]

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 投票
2 回答
65 浏览

r - 无法从 purr::pmap 或 purr:map2 中的输入列表访问字符串元素

我有一个棘手的问题是访问列表的字符串值作为 purr 函数的参数。

我的目标是将两个向量的字符串元素的所有排列(用于输出文件名)连接到一个输入列表中:

预期结果应如下所示:

这是我尝试过的:

如您所见,purr::pmap 函数只检索元素的索引值而不是字符串值。另一方面,它可能不是特定于 purr 因为应用函数显示相同的问题:

一种预感是,在 paste0() 或 paste() 中隐藏的 c() 函数以某种方式阻止了对字符串值的访问——但只能与 purr:pmap 结合使用,而不是与 purr:map2 结合使用!

所以这有效:

我的预感是这个问题可能与 NSE(非标准评估)有关,但我无法弄清楚,因为 purr:map2 按预期工作。

我会很感激能很好地解释为什么会发生这种情况——以及如何使它与 purr:pmap 一起工作。

0 投票
1 回答
1711 浏览

r - R - 使用 purrr::pmap() 进行逐行迭代

我试图了解 pmap 的工作原理。下面的 tibble 包含一个 list-column values。我想创建一个新列New,该列取决于列中的相应元素是否values为 NULL。由于 is.null 没有矢量化,我最初想rowwise()在遇到pmap().

使用rowwise()之前给mutate()了我想要的结果,如下所示:

但是,pmap()不:

如果我使用匿名函数代替波浪号,它似乎可以工作:

但我不明白为什么波浪号版本会失败?我宁愿不必完整指定参数,因为我需要将函数映射到多个列。我哪里错了?

0 投票
1 回答
48 浏览

output - pmap 数据格式(Julia 1.1.0)

我有一个使用 pmap 运行的函数。我希望输出是一个向量 - p - 它的条目是每次迭代并行运行的输出。为了说明,代码如下:

我得到的输出是

相反,我需要这样的东西, p = [1,2,3,4,...,100];

如何获得所需格式的输出?

0 投票
1 回答
183 浏览

memory - 根据 pmap,JVM 总是在我的 linux 服务器中保留近 1G 内存

我写了一个java类并在linux中运行它。无论堆大小有多大,JVM 总是会预留近 1G 的内存。我试过了

pmap中总有一行,值为1048064 104768.....

Linux 服务器有 6VCPU 16GB 内存

任何人都可以解释为什么?谢谢

0 投票
3 回答
1303 浏览

r - purrr::pmap 用于具有多个输入和多个返回值的函数

我正在尝试设置具有多个输入和多个返回值的自定义函数,并purrr::map在数据框上使用此函数。

我的样本数据是:

test_data看起来像这样:

首先,如果我的函数只有一个返回值(output_3在这种情况下):

pmap使用这个功能

结果如下所示:

现在如果我的函数有多个返回值,比如

我应该如何映射它my_function_2并将purrr::map返回列添加到test_data,就像上一步使用一个返回值一样?

我还想先输出结果(使用以下代码),然后再join/bind输出test_data

但结果不是想要的格式,如下所示:

有人可以提醒我一些潜在的解决方案来格式化输出并加入原始文件test_data吗?

0 投票
2 回答
888 浏览

parallel-processing - 并行map和并行for循环的区别

当我阅读多核并行计算的 Julia 文档时,我注意到并行映射pmap和 for-loop都有@distributed for

从文档中可以看出,“Juliapmap专为每个函数调用执行大量工作的情况而设计。相比之下,@distributed for可以处理每次迭代很小的情况”。

pmap和 有什么区别@distributed for?为什么@distributed for大量工作很慢?

谢谢

0 投票
1 回答
220 浏览

multithreading - 在 Clojure 中使用 pmap 来并行化归并排序。程序在结束前挂起约 1 分钟,然后终止

我正在 Clojure 中编写一个程序,该程序从文本文件 10000.txt (这有 10k 个无符号整数)中获取输入。然后我将该列表传递给我的合并排序函数(一个单线程,2、4、8、16、32线程)。

当我运行程序时,通过键入“clojure test.clj”,它会输出每个函数的经过时间,但程序不会终止。

它挂在那里,就像它在等待输入或即将输出其他东西一样。然后大约 1 分钟后,程序最终终止。幕后一定有什么事情发生。关于它是什么/输入后我需要做什么来终止程序的任何想法?

程序的输出(终止前)这是它挂起大约 1 分钟的地方

终端输出图片

这是我的 10000.txt 文件:https ://pastebin.com/5vKXUk1u

我的预期结果是程序在最后时间打印后终止,而不是 1 分钟终止。

感谢大家的时间和帮助!

0 投票
1 回答
617 浏览

r - R:为什么 pmap 不工作而 map2 工作?

我对 R 相当陌生,并且正在自学一些机器学习技术。目前我正在研究超参数调优,为了更好地理解这个问题,我尝试更多地手动完成任务,而不是他们需要的。所以我使用带有列表列的小标题,其中每一行包含训练集交叉验证折叠和随机森林算法的某些超参数值。整个网格包含这些在指定范围内的所有唯一组合。应该通过在所有行上迭代ranger函数(即折叠/参数组合)来构建模型,然后将其保存到列表列中。为此,我使用了 purrr 包的 map 函数系列。

问题是这种方法仅在使用 将数据和单个参数(mtry)映射到ranger函数时才有效map2。我知道pmap在将超过 2 个元素映射到函数时需要使用。但是,与之前描述的两个元素的情况不同,这对我来说不适用于数据和两个参数(mtry 和 min.node.size)作为元素。该pmap函数无法将第三个元素(min.node.size)作为参数映射到ranger函数,并且出现以下错误:

“游侠错误(物种〜.,数据= .x,mtry = .y,min.node.size = .z):找不到对象'.z'”

这是我使用 iris 数据集的代码:

如果有人可以向我展示如何pmap在这种情况下正确使用以便执行随机森林模型,那将非常有帮助。

此致

0 投票
2 回答
72 浏览

r - 使用需要四个向量的函数在 R 中迭代

我正在尝试使用 geosphere 包中的 distHaversine 函数查找多个城市之间的距离。此代码需要各种参数:

第一个地方的经度和纬度。第二个地方的经度和纬度。以任何单位表示的地球半径(我使用 r = 3961 表示英里)。

当我将其作为向量输入时,它很容易工作:

但是,我的实际数据集如下所示:

我想要的是有行来说明每个目的地与该人当前位置的距离。

我知道必须有一种使用 purrr 的 pmap_dbl() 的方法,但我无法弄清楚。

如果您的代码使用 tidyverse,并且如果有任何简单的方法可以创建一个标识最近目的地的列,则可以加分。谢谢!

在一个理想的世界里,我会得到这个:

注意: dist 列中的数字是随机的;但是,它们将是 distHaversine() 函数的输出。这些列的名称是任意的——不需要这样称呼。另外,如果最近的列超出了这个问题的范围,我想我可以解决这个问题。

0 投票
1 回答
446 浏览

r - 在 ggplot2 中使用 pmap 自动绘制不同数据集的图形

我正在尝试通过编写一个函数来自动化我的条形图,该函数将采用不同的数据集以及 x 和 y 轴值。

由于该函数具有三个参数(数据集、x 轴和 y 轴),因此我使用的是 purrr 中的 pmap()。

当我删除数据集参数并使用 map2() 而不是 pmap() 时,该函数工作正常

这是我写的代码:

我在使用 pmap() 时得到的错误代码是这样的:

“元素 1 的.l长度必须为 1 或 12,而不是 2”

提前感谢您的帮助!