R 中 Mathematica 的 MapThread 函数
MapThread function from Mathematica in R
来自 Mathematica 我开始使用 R。在 Mathematica 中有一个函数 MapThread。从 到 不同列表的元素被插入到函数中。
这是一个小例子:
MapThread[#1*#2 &, {{1, 2, 3}, {4, 5, 6}}]
Returns:
{4, 10, 18}
我想知道 R 中是否有相同的函数。
您可以为此使用 mapply
:
mapply('*', c(1,2,3), c(4,5,6))
[1] 4 10 18
第一个参数是要按元素应用于以下参数的函数(在本例中为乘法 *
)。然后第二个参数是第一个向量,第三个参数是第二个向量(函数将应用于其元素)。
如果您在控制台上键入 ?mapply
,您可以看到更多示例并了解它。
如果出于某种奇怪的原因你可以做显而易见的事情,例如 c(1,2,3) * c(4,5,6)
,do.call
会比 mapply
更有效:do.call("*", list(c(1,2,3), c(4,5,6)))
我认为这等同于您的 Mathematica 代码所做的。
来自 Mathematica 我开始使用 R。在 Mathematica 中有一个函数 MapThread。从 到 不同列表的元素被插入到函数中。 这是一个小例子:
MapThread[#1*#2 &, {{1, 2, 3}, {4, 5, 6}}]
Returns:
{4, 10, 18}
我想知道 R 中是否有相同的函数。
您可以为此使用 mapply
:
mapply('*', c(1,2,3), c(4,5,6))
[1] 4 10 18
第一个参数是要按元素应用于以下参数的函数(在本例中为乘法 *
)。然后第二个参数是第一个向量,第三个参数是第二个向量(函数将应用于其元素)。
如果您在控制台上键入 ?mapply
,您可以看到更多示例并了解它。
如果出于某种奇怪的原因你可以做显而易见的事情,例如 c(1,2,3) * c(4,5,6)
,do.call
会比 mapply
更有效:do.call("*", list(c(1,2,3), c(4,5,6)))
我认为这等同于您的 Mathematica 代码所做的。