问题标签 [mapply]

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 回答
4535 浏览

r - 向量化()与应用()

Vectorize()和中的函数apply()通常R可以用来实现相同的目标。出于可读性的原因,我通常更喜欢向量化函数,因为主调用函数与手头的任务相关,而与手头的任务sapply无关。Vectorize()当我要在我的 R 代码中多次使用该矢量化函数时,它也很有用。例如:

对比

但是,至少在 SO 我很少看到Vectorize()解决方案中的示例,只有apply()(或其中一个兄弟姐妹)。是否存在任何效率问题或其他合理的担忧,Vectorize()这是apply()一个更好的选择?

0 投票
3 回答
37032 浏览

r - R data.table 使用列作为参数将函数应用于行

我有以下data.table

我想对data.table. 该函数func.test使用 argsf1f2对其进行处理并返回一个计算值。假设(例如)

但我真正的函数更复杂,并且执行循环和所有操作,但返回一个计算值。实现这一目标的最佳方法是什么?

0 投票
2 回答
875 浏览

r - 如何使用 mapply 计算时间序列对列表的 CCF?

我正在尝试将此处描述的函数应用于一组时间序列。为此,mapply 似乎是一个好方法,但我想在定义函数或使用 mapply 时存在一些问题。

这是示例代码,我在其中发现返回的数据帧格式存在一些差异,这可能是错误的根源。

当时间序列对创建为 combn(tslist, 2) 并使用 plyr::mlply 输入时间序列作为参数时,我希望 try2 直接工作,但这种方法不起作用或使用不正确。

有没有办法使用这种方法或任何替代方法找到一组时间序列的 CCF 矩阵?

编辑:试图使问题更加清晰和具体。

谢谢。

0 投票
2 回答
99 浏览

r - 为列表中的每一行文件提供唯一 ID

我有许多文件,我需要自动给每个文件一个唯一的 ID 代码。

到目前为止,我已经设法做到以下几点:

它将文件的名称放入一个新列中。

但后来我想添加一个数字,从 1:每个文件中的行数。

我已经尝试了几件事,但我并没有真正期望任何一个都能工作:(然后我打算将它们粘贴在一起并删除“临时”列 - 然后弄清楚如何在没有临时列的情况下一步完成):

或者

我可以获得列表中单个位的行数 ( nrow(datalist[[1]])),但不确定如何将其应用于所有行,无论列表中有多少。

它是一个 for 循环,还是有更好的方法?

示例数据集:

0 投票
5 回答
3124 浏览

r - 按字母顺序粘贴两个向量的元素

假设我有两个向量:

我想要做的是将第一对,第二对等粘贴在一起......但是,我想按字母顺序粘贴每对的两个元素。在上面的示例中,前 2 对已经按字母顺序排列,但第 3 对 'harry' 和 'chris' 不是。我想为这对返回“chris harry”。

我已经想出了如何在两步过程中做到这一点,但想知道是否有一种快速的方法(单线方式)来做到这一点只是使用paste

我的解决方案:

它按字母顺序给出了对...但是有 1 行方式吗?

0 投票
1 回答
188 浏览

r - 在 R 中的一次调用中应用函数并分配多个变量

要考虑的一些示例 R 代码:

所以这个要点是我想通过find.key 函数基于查找表(关联数组/列表)添加新变量(NewX2,Newy2) 。

有什么方法可以让我的代码保持干燥吗?特别是这里:

我不确定sapplylapply可以提供帮助吗?或者也许像这里%=%看到的那样。

我想要这样的东西......(希望这是有道理的):

0 投票
1 回答
2311 浏览

r - 对所有参数组合应用函数

我希望能够将函数应用于一组输入参数的所有组合。我有一个可行的解决方案(如下),但如果没有更好/更通用的方法来做到这一点,例如 plyr,我会感到惊讶,但到目前为止还没有发现任何东西。有更好的解决方案吗?

例子:

0 投票
0 回答
125 浏览

r - 使用 R 中的 mapply 使用先前迭代的输出作为当前迭代的输入

我在 mapply 中使用了一长串优化,每次迭代都类似于下一次。我想使用先前迭代优化值的输出作为当前迭代的起点。有可能吗?或者我可以使用 R 中的另一个包毫不费力地做到这一点吗?

为了澄清,假设我有一个包含 100 个值的向量。在每次迭代中,我从 1:50、2:51 等开始选取其中的 50 个,以拟合具有 3 个参数的模型。输出是一个 3 列 51 行的数据集。我想加快这个过程,因为随后的迭代具有几乎相同的数据。

0 投票
2 回答
265 浏览

arrays - 在R中相交多维数组

我有兴趣交叉多个标识符列表,制作一个包含列表对('rk'与't')之间重叠数量的表。我有一个模糊的想法,即 sapply 是要走的路,但在搜索和阅读教程后我仍然卡住了。

编辑:我认为最好将两个列表列表分组并按照建议尝试 sapply/mapply

但我是 R 初学者,非常感谢有关循环和使用应用函数的一些指导。但我只看到 rk1 的交叉点(但没有看到 rk2,应该是 1 2 3 2)

0 投票
1 回答
1522 浏览

r - 映射到多个数据的不同列

我有一个函数,它接受两个向量并计算一个数值(就像cor相关性一样)。但是,我有两个大约 6000 列的数据集(两个数据集具有相同的维度),其中函数应该返回一个具有相关值的向量。

带有循环的代码如下所示:

这很好用,但出于效率原因,我想使用 apply-family,很明显,mapply 函数。

但是,mapply(cor,m,n)返回一个长度为 9 的向量NA,它应该返回:

编辑/解决方案

@akrun 给出的解决方案是使用数据帧而不是矩阵。

此外,两个提议的解决方案之间的速度测试表明,mapply-version 比sapply