问题标签 [multidplyr]

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 投票
1 回答
565 浏览

r - 用 doMC 替代并行 plyr

考虑对 data.frame 的标准分组操作:

通过简单地编写来利用多核设置是微不足道的.parallel = TRUE。这是我最喜欢的 plyr 功能之一。

但是随着 plyr 被弃用(我认为)并基本上被 dplyr、purrr 等取代,并行处理的解决方案变得更加冗长:

cluster_*考虑到循环内需要的每个包和对象都需要自己的命令将其复制到节点上,您可以想象这个示例需要多长时间。非并行化的 plyr 到 dplyr 的转换只是一个简单dplyr::group_by的构造,不幸的是没有简洁的方法可以对其进行并行处理。所以,我的问题是:

  • 这实际上是将我的代码从 plyr 转换为 dplyr 的首选方式吗?
  • 在 plyr 的幕后发生了什么样的魔力,使得开启并行处理变得如此容易?是否有理由将此功能特别难以添加到 dplyr,这就是为什么它还不存在?
  • 我的两个示例在代码执行方式方面是否存在根本不同?
0 投票
1 回答
149 浏览

r - 如何将列名向量传递给 R 中的 multidplyr 的分区函数

我面临着 multidplyr 的分区功能的问题。我的目标是按列名组查找汇总统计信息。前任:

现在我想通过使用上面的rcols对象来查找汇总统计信息。我可以使用以下几行在 dplyr 中做到这一点。

现在我想通过使用 multidplyr 包来做同样的事情。

但是上面的行没有按预期工作。

谁能帮我解决这个问题?

提前致谢。

0 投票
1 回答
257 浏览

r - 使用multidplyr时如何按多列拆分

tl; dr
如何从多列上拆分乘法器进行“分区”?

动机:
我不满意使用 32 个内核中的 1 个进行辛勤总结,所以我尝试使用multi-dplyer 我在多个列上运行。

示例:
小插图显示按单列分组,但是当我这样做时,不考虑我的其他分组列。

代码:

那么如何按年、月和日拆分呢?

这对我不起作用:

我似乎无法完成这项工作。你能指出一个适当的或至少有效的方法吗?

0 投票
1 回答
2356 浏览

r - Dplyr 和 RJDBC:无法为签名“JDBCConnection”、“tbl_df”找到函数“dbGetQuery”的继承方法

我正在使用 RJDBC 包连接到 Oracle DB。我需要检索大量数据,我想通过不同的核心分发查询。我知道该表有五百万条记录。因此,我编写了一个 SQL 查询,例如:

然后我分发到核心并设置环境核心

然后我尝试进行查询:

我收到了这个错误,我真的不知道我能做什么。

我也在尝试“tbl”,但我明白了:

0 投票
2 回答
204 浏览

r - 使用 multidplyr 进行矢量化不会呈现正确的输出

我试图并行化ape::dist_topo(),一个计算无根树之间距离的函数。

通常该函数是这样工作的(reprex:4 个随机树,每个树有 5 个叶子):

我创建了一个函数来计算 data.frame 中 2 x 2 的距离(以便按行拆分集群):

正如预期的那样,结果是相同的(无论名称如何)。

然后我在管道中添加了multidplyr::partition()and函数:multidplyr::collect()

如您所见,距离不同,而操作没有改变。

我该如何解决?也许这是不可能的(见这里

谢谢

注意:我知道这个解决方案可能不是最优的(特别是因为它计算每个距离两次)但这不是重点。

0 投票
1 回答
182 浏览

r - R:从表中删除支配行的快速方法是什么?

我正在寻找一种从表中删除所有主导行的快速方法(最好使用并行处理,以利用多个内核)。

“支配行”是指在所有列中小于或等于另一行的行。例如,在下表中:

第 2 行和第 3 行是被支配的行(在这种情况下,它们都被第 1 行支配),应该被删除。第 1 行和第 4 行不受任何其他行的支配,应保留,结果如下表:

为了进一步说明,这是我希望加速的代码类型:

我有一些想法,但我想我会问是否有众所周知的包/功能可以做到这一点。


更新:这是上述代码的一个相当简单的并行化,但它提供了可靠的性能提升:

0 投票
1 回答
271 浏览

r - 在 R 中并行运行断点 (lm) 检测

我在 R 中进行了大约 80000 个时间序列断点检测计算。我有所有这些极其不同的时间序列,我无法应用 ARIMA 模型,所以我正在计算每个时间序列的线性模型,然后提取断点并使用回归的拟合结果计算来自最后一个断点的趋势。
一个时间序列的示例

在上面的示例中,算法将检测三个断点(一个倾斜、一个相当平坦和一个下降)。它非常适合我的需求,但是每周按顺序运行一次 80k 断点计算开销太大,因此我试图通过在 R 中使用并行处理来实现这一点。

在此示例中(在下面找到指向数据的链接)我正在按顺序计算断点,所有 88k 大约需要 24 小时。

在这个代码片段中,我正在对 10 个时间序列(在我的 Mac 上)运行检测,这需要47 秒。我猜想并行化应该将这个基准测试时间减少到大约 1/4 pf 时间。

下面我列出了三种我尝试并行计算的方法,但我无法让嵌套应用在并行设置中工作。

与并行包

使用 multidplyr 包:

与并行包但其他分组

文件链接:

http://www.filedropper.com/dfsubset

感谢您的想法和反馈!

0 投票
0 回答
261 浏览

r - 使用 multidplyr 时无法将环境转换为函数错误

multidplyr这是我在我的研究所集群上运行的代码中使用调用的示例:

我收到此错误消息:

和:

所以我真的不知道从哪里开始调试这个问题。

有人有想法吗?

sessionInfo是有用的情况:

在我的台式 Mac 上尝试同样的操作,它运行良好。multidplyr我在我的工作台上通过一个简单的调用来对这个调用进行基准测试并得到:

是否有一些恒定的开销multidplyr会增加设置核心,以 测量microbenchmark,这使得在这个玩具示例中看起来不太有利,但在更大的数据集中绝对值得?

否则,我是否错过了使用的重点multidplyr

非常感谢

0 投票
2 回答
313 浏览

r - 根据条件折叠

这个问题类似于几天前已经发布的问题,Collapse rows from 0 to 0

这里与上一个问题不同的新变化是,我们如何仅针对时间差异小于或等于 60 的行按 Id 折叠行。

例如,使用相同的数据集

这通过ID计算时间差

这会导致这个新列差异,如下所示

Incident.ID..现在只在时间差小于或等于 60的地方折叠行,即diff <= 60应该产生像这样的最终数据集

寻找有关如何创建此类折叠数据集的帮助。提前致谢。

0 投票
0 回答
60 浏览

r - 检查点在 R-markdown 中找不到 multidplyr

我正在尝试创建一个 R-markdown 文档,我将在其中运行 multidplyr。为了确保可重复性,我决定使用检查点库。

MWE:

运行此代码会给我以下错误:

FUN(X[[i]], ...) 中的错误:没有名为“multidplyr”的包调用:... withVisible -> eval -> eval -> checkpoint -> lapply -> FUN

我尝试在没有 if 子句的情况下运行它 multidplyr 只是每次都安装它,然后我尝试使用 devtools 安装它,但我得到了同样的错误。有任何想法吗?