问题标签 [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.
r - 向量化()与应用()
Vectorize()
和中的函数apply()
通常R
可以用来实现相同的目标。出于可读性的原因,我通常更喜欢向量化函数,因为主调用函数与手头的任务相关,而与手头的任务sapply
无关。Vectorize()
当我要在我的 R 代码中多次使用该矢量化函数时,它也很有用。例如:
对比
但是,至少在 SO 我很少看到Vectorize()
解决方案中的示例,只有apply()
(或其中一个兄弟姐妹)。是否存在任何效率问题或其他合理的担忧,Vectorize()
这是apply()
一个更好的选择?
r - R data.table 使用列作为参数将函数应用于行
我有以下data.table
我想对data.table
. 该函数func.test
使用 argsf1
并f2
对其进行处理并返回一个计算值。假设(例如)
但我真正的函数更复杂,并且执行循环和所有操作,但返回一个计算值。实现这一目标的最佳方法是什么?
r - 如何使用 mapply 计算时间序列对列表的 CCF?
我正在尝试将此处描述的函数应用于一组时间序列。为此,mapply 似乎是一个好方法,但我想在定义函数或使用 mapply 时存在一些问题。
这是示例代码,我在其中发现返回的数据帧格式存在一些差异,这可能是错误的根源。
当时间序列对创建为 combn(tslist, 2) 并使用 plyr::mlply 输入时间序列作为参数时,我希望 try2 直接工作,但这种方法不起作用或使用不正确。
有没有办法使用这种方法或任何替代方法找到一组时间序列的 CCF 矩阵?
编辑:试图使问题更加清晰和具体。
谢谢。
r - 为列表中的每一行文件提供唯一 ID
我有许多文件,我需要自动给每个文件一个唯一的 ID 代码。
到目前为止,我已经设法做到以下几点:
它将文件的名称放入一个新列中。
但后来我想添加一个数字,从 1:每个文件中的行数。
我已经尝试了几件事,但我并没有真正期望任何一个都能工作:(然后我打算将它们粘贴在一起并删除“临时”列 - 然后弄清楚如何在没有临时列的情况下一步完成):
或者
我可以获得列表中单个位的行数 ( nrow(datalist[[1]])
),但不确定如何将其应用于所有行,无论列表中有多少。
它是一个 for 循环,还是有更好的方法?
示例数据集:
r - 按字母顺序粘贴两个向量的元素
假设我有两个向量:
我想要做的是将第一对,第二对等粘贴在一起......但是,我想按字母顺序粘贴每对的两个元素。在上面的示例中,前 2 对已经按字母顺序排列,但第 3 对 'harry' 和 'chris' 不是。我想为这对返回“chris harry”。
我已经想出了如何在两步过程中做到这一点,但想知道是否有一种快速的方法(单线方式)来做到这一点只是使用paste
?
我的解决方案:
它按字母顺序给出了对...但是有 1 行方式吗?
r - 在 R 中的一次调用中应用函数并分配多个变量
要考虑的一些示例 R 代码:
所以这个要点是我想通过find.key 函数基于查找表(关联数组/列表)添加新变量(NewX2,Newy2) 。
有什么方法可以让我的代码保持干燥吗?特别是这里:
我不确定sapply
或lapply
可以提供帮助吗?或者也许像这里%=%
看到的那样。
我想要这样的东西......(希望这是有道理的):
r - 对所有参数组合应用函数
我希望能够将函数应用于一组输入参数的所有组合。我有一个可行的解决方案(如下),但如果没有更好/更通用的方法来做到这一点,例如 plyr,我会感到惊讶,但到目前为止还没有发现任何东西。有更好的解决方案吗?
例子:
r - 使用 R 中的 mapply 使用先前迭代的输出作为当前迭代的输入
我在 mapply 中使用了一长串优化,每次迭代都类似于下一次。我想使用先前迭代优化值的输出作为当前迭代的起点。有可能吗?或者我可以使用 R 中的另一个包毫不费力地做到这一点吗?
为了澄清,假设我有一个包含 100 个值的向量。在每次迭代中,我从 1:50、2:51 等开始选取其中的 50 个,以拟合具有 3 个参数的模型。输出是一个 3 列 51 行的数据集。我想加快这个过程,因为随后的迭代具有几乎相同的数据。
arrays - 在R中相交多维数组
我有兴趣交叉多个标识符列表,制作一个包含列表对('rk'与't')之间重叠数量的表。我有一个模糊的想法,即 sapply 是要走的路,但在搜索和阅读教程后我仍然卡住了。
编辑:我认为最好将两个列表列表分组并按照建议尝试 sapply/mapply
但我是 R 初学者,非常感谢有关循环和使用应用函数的一些指导。但我只看到 rk1 的交叉点(但没有看到 rk2,应该是 1 2 3 2)
r - 映射到多个数据的不同列
我有一个函数,它接受两个向量并计算一个数值(就像cor
相关性一样)。但是,我有两个大约 6000 列的数据集(两个数据集具有相同的维度),其中函数应该返回一个具有相关值的向量。
带有循环的代码如下所示:
这很好用,但出于效率原因,我想使用 apply-family,很明显,mapply 函数。
但是,mapply(cor,m,n)
返回一个长度为 9 的向量NA
,它应该返回:
编辑/解决方案
@akrun 给出的解决方案是使用数据帧而不是矩阵。
此外,两个提议的解决方案之间的速度测试表明,mapply
-version 比sapply
: