问题标签 [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 回答
623 浏览

r - 将 n *表达式* 的列表应用于数据帧的每一行?

简而言之,我有一个表达式列表,我想应用于数据帧的每一行。这与这个问题非常相似,但有一个细微的区别,因为我没有函数列表,但有表达式列表。这是我正在尝试的:

我有一个方程式项的数据框,我传递给它paste以形成表达式的文本字符串:

这将返回存储为文本的表达式向量,例如“10*2 + 0.5*3 + 300*4 + 1000*5 * x * 1.32 * 0.45”。

然后我编写了一个函数来将文本表达式转换为 R 表达式,使用parse

...funs.txt存储为文本的表达式向量在哪里。

现在,这就是我遇到困难的地方。Imaginefuns.list包含两个表达式。如果我这样做:

...我得到一个 2x2 矩阵,我只希望答案在对角线上。(最终我将拥有大约 1,000 个表达式,作为优化的一部分,它们将被重复调用,因此不需要额外的计算工作。)

我尝试过的另一种方法是:

...但我从do.call声明中收到一条错误消息'what' must be a character string or a function

关于从这里去哪里有什么建议吗?

0 投票
3 回答
1874 浏览

r - R data.table 列名在函数中不起作用

我正在尝试在函数中使用 data.table,并且试图了解我的代码失败的原因。我有一个 data.table 如下:

我正在尝试创建所有具有不同“my_id”值的“my_name”对,对于 DT 来说,这将是:

我有一个函数可以为给定的“my_id”值对返回所有“my_name”对,它按预期工作。

现在,我想为所有 id 对执行此函数,我尝试通过查找所有 id 对然后将 mapply 与 get_pairs 函数一起使用来实现。

同样,如果我尝试在没有 mapply 的情况下做同样的事情,它会起作用。

为什么这个函数只有在 mapply 中使用时才会失败?我认为这与 data.table 名称的范围有关,但我不确定。

或者,是否有不同/更有效的方式来完成这项任务?我有一个带有第三个 id “sample”的大型 data.table,我需要为每个样本获取所有这些对(例如在 DT[sample=="sample_id",] 上操作)。我是 data.table 包的新手,我可能没有以最有效的方式使用它。

0 投票
1 回答
66 浏览

r - 如何将不平衡的参数传递给 mapply

嗨,我有以下代码工作。

它计算两个期间之间的百分比差异。对于第一个周期,函数返回 NA,因为没有变化。

我想用 mapply 替换以下代码并将两个参数传递给 fn.pc。

例如,上面的函数签名将替换为:

然后这个函数会被 mapply 调用,使用类似下面的代码:

但我无法让这个想法发挥作用。我认为这是因为两个参数的长度不同。

我有任何办法可以让这个工作。希望这很清楚。有点难以解释。

0 投票
1 回答
186 浏览

r - 如何使用因子函数参数和输出从 mapply 返回值

我无法从 mapply 函数的输出中获取值而不是因子。下面的代码尝试查找特定位置和时间的温度。

当我运行代码时,我会返回因子而不是值。知道如何返回值而不是因子吗?

我尝试使用 lapply 但无法让它以相同的方式工作。

0 投票
4 回答
1095 浏览

r - 在 R 中使用应用

我有一个数字矩阵,我想从每列中获取 5 个最低(最小值)元素的平均值。我正在尝试使用可用的不同应用功能之一。但我做不到。

这是我需要应用的功能,我已经用 for 循环对其进行了测试,效果很好。

这是我尝试过的几个示例之一:

我收到以下错误:

我也尝试过 sapply,lapply ......但我没有让它工作。找不到任何依据,上网冲浪..

提前致谢

0 投票
2 回答
322 浏览

r - 在函数中使用 mapply(...)

我正在尝试生成几个随机数系列,每个系列都有一组不同的参数。然后我想复制所有这些。我想要一个函数来执行此操作,它似乎应该是一个 1-liner,类似于rnorm()生成数字、mapply()为多个参数集生成这些数字并replicate()重复整个过程。

为了实现这一点,我编写了一个函数,...我希望其参数与...in相对应mapply,但它似乎...mapply. 我有一些示例可以阐明我想要的输出以及问题:

我猜我需要把它包起来...;我不经意地尝试了alist(), list(), bquote(),expression()as.call()其他几种失败的方法。

1)为什么看起来完全忽略mapply了?f()... 编辑:这是一个辅助问题,答案是“点不适用于复制”。好的,进入核心问题...

2)如何将对象的元素拆分为 length(object) 元素,并将它们作为单独的项目传递给mapply's ...

我需要在椭圆上做得更好。我真的被这个难住了。

0 投票
1 回答
99 浏览

r - 将变量名称传递给 mapply(使用 reshape)

我正在尝试采用长格式数据框并根据不同变量的列表从中创建几个宽格式数据框。

我的想法是使用mapply将我想要按位置过滤的变量集传递给数据集。但它看起来不像 mapply 可以在 vars 列表中读取。

数据:

对于每个定量变量(雇员、女孩和男人),我想创建一个宽格式数据框,其中日期为行,区域为列。

我可以使用 mapply 来更简洁地执行此操作,而不是为每个 {“employed”、“girls”、“guys”} 分别运行 melt 和 dcast 吗?

例如:

告诉我:

我想要得到的是宽格式数据框的列表;我认为 mapply 将是传递多个参数的最简单方法,但如果有更好的方法来解决这个问题,我完全赞成。

例子:

0 投票
1 回答
207 浏览

r - 用R中的应用替换返回数据帧的双/嵌套for循环函数

考虑一个接受两个输入参数并返回一个数据框的函数:

可以在此函数的每个参数上构造一个双循环:

如何用 apply 构造替换这个双循环?

0 投票
0 回答
101 浏览

r - 在 r 中使用“mapply”和“bigmemory”

我在 R 中有 3 个非常大的向量(一个是本金支付,一个是利率,一个是条款)。我需要通过一个函数(来自 FinCal 包的 pmt 函数)传递所有可能的组合。我将每个向量放入一个大矩阵(来自 bigmemory 包),但无法在大矩阵上运行 mapply(收到“这个 S4 类不是子集”)。大矩阵中唯一的槽是指针,我无法用@指定它。有没有办法遍历一个大矩阵来执行这样的计算或任何其他建议?大约有 3.5 亿种组合。

0 投票
1 回答
124 浏览

r - 制定函数以向 mapply 函数提供变量

我有以下功能,当放在第一个示例中时可以正常工作。但是,我希望其中两个变量在 mapply 函数中分别具有另外两个列表,以便以任何形式提供两个结果。变量 w2 是一个包含两个组件的列表,而 xx 是一个包含 2 个向量的列表。

我可能没有正确使用第二个 mapply,因为它似乎不起作用。我想知道这是否可以被表述为最后一个 mapply 的循环,其中两个变量应该输入到 mapply 函数中,或者我可以使用另一个 apply 系列来执行此操作。结果应该与在单独的变量数据馈送中两次应用正确的第一个示例相同,但作为列表加入。

编辑

Following the reponse from frank. A question that has promted is how would you reformulate the expression response function if MoreArgs=list ( x = ( xx[[i]][[1]] )) was -- MoreArgs=list(x=(xx[[ i ]][[ j ]]))), meaning a new variable would have been introduced into the function - j - which is not included in any of the parts as per adding this to your solution above.