问题标签 [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 投票
1 回答
2885 浏览

r - 映射基础?- 如何从两个向量和一个函数创建一个矩阵

我正在尝试创建一个 data.frame 从中创建图表。我有一个函数和两个向量,我想将它们用作两个输入。这有点简化,但基本上我所拥有的是:

我想要的只是一个 data.frame,其中 3 列用于 avgGPA 值,16 行用于 relGPA 值以及单元格中的结果值。

我很抱歉这是多么基本,但我向你保证,我已经尝试在没有你帮助的情况下实现这一点。我已经尝试按照 sapply 和 mapply 手册页上的示例进行操作,但我对 R 来说有点太新了,看不到我想要做什么。

谢谢!

0 投票
2 回答
6983 浏览

r - 强制mapply返回一个列表?

假设我有一个创建数据框的函数。我想用不同的输入值运行该函数,然后将结果合并到一个大数据框中,如下所示:

我的 CreateDataFrame 函数需要三个参数。在上面的示例中,第二个和第三个参数保持不变。我想做和上面一样的事情,但是每次调用都会改变第二个和第三个参数。我想我必须使用mapply,像这样:

我遇到了麻烦,因为 mapply 没有返回列表,这阻止了我运行do.call(rbind, mapply(...)). 我怎样才能得到一个数据框,就像我在顶部的示例中所做的那样?

看起来像 mapply 正在返回一个列表矩阵。我期待它返回一个数据框列表。我应该怎么做?

0 投票
2 回答
315 浏览

r - 有效计算每个数字范围内的数字

我正在寻找以下问题的更快解决方案。我将用一个小例子来说明这个问题,然后提供代码来模拟大数据,因为这就是这个问题的重点。我的实际问题大小是列表长度 = 100 万个条目。

说,我有两个列表,如下所示:

x 和 y 的属性:

  • 列表中的每个元素x总和为 100。
  • 的每个元素y将始终进行排序,并且始终介于 1 和 100 之间。

问题:

现在,我想要的是这个。取x[[1]]and y[[1]],我想找到y[[1]]1) <= 82 和 2) > 82 和 <= 100 中的数字计数。那就是 c(4, 1) 因为数字 <= 82 是c(1,2,3,55)和之间的数字83和100是c(90)x[[2]]y[[2]], c(0, 2, 1)类似。也就是说,答案应该是:

如果这还不清楚,请告诉我。


具有 100 万个条目的模拟数据


到目前为止我所做的:

使用mapply(慢):

我想首先使用rankwith ties.method="first"and mapply(显然选择 2 个列表)并尝试了这个:

虽然这工作得很好,但 1M 条目需要大量时间。我认为计算的开销rankdiff增加很多次。这需要241 秒

因此,我决定尝试并通过使用“组”列进行排序来克服和的使用rank。我想出了一个更长但更快的解决方案,如下所示:diffdata.table

使用data.table(更快):

这需要26 秒。所以它快了大约 9 倍。我想知道是否有可能获得更多的加速,因为我必须在 5-10 个这样的 100 万个元素上递归地计算它。谢谢你。

0 投票
1 回答
432 浏览

r - 使用 mapply 通过带有函数的向量逐元素变换向量

有一个关于使用的问题mapply

考虑以下 2 个案例: 案例 1显示了我希望做的简化示例。我使用 mapply 将向量 k 元素与存储在向量 trans 中的函数进行转换。这有效(与这个问题有关

案例 2中,我希望做类似的事情,但是,我需要额外的函数参数(这里,存储在 a 中)。但我可能需要 n 个函数参数。我在这个例子中得到的是一个 3x3 矩阵,预期结果在对角线上。我只想要对角线的计算输出。如何?

0 投票
3 回答
70 浏览

r - mapply 在列表中添加唯一的列名

假设我有一个清单:

然后,我想为每个列表元素添加一列,该列的名称不同。

答案是

这不是我所期望的。我希望答案是:

Update

如果我使用SIMPLIFY=FALSE

0 投票
1 回答
22509 浏览

r - 将函数应用于两个列表?

要找到两个矩阵 X 和 Y 的逐行相关性,输出应该具有 X 的第 1 行和 Y 的第 1 行的相关值,...,因此总共有 10 个值(因为有 10 行):

现在,我应该如何将此函数应用于两个列表(每个列表包含大约 50 个数据帧)?

考虑列表 A 具有数据框 $1、$2、$3... 等等,列表 B 具有相似数量的数据框 $1、$2、$3。因此,该函数应应用于列表中的其他数据帧listA$1,listB$1listA$2,listB$2以此类推。listA$1最后,在比较 1 (和listB$1) 以及其他情况下,我将有十个值。

这可以使用“lapply”来完成吗?

0 投票
1 回答
329 浏览

r - 在 R 中有没有比 mapply 有效的替代方法?

这是我正在尝试测试的示例数据和代码:

我想知道我是否真的应该mapply在这种情况下使用。有没有更有效的方法来执行操作?

0 投票
1 回答
1189 浏览

python - R:比较大数据框中的两个字符列

所以,我有一个非常大的数据框,它有两列字符。这些字符是一些用“;”分隔的 ID 值。所以,我想计算这两列之间公共 ID 值的数量。这是一个例子:

所以在这种情况下,第一行有一个公共值,第二行有两个公共值。

表大小为 60M 记录,部分字符串可能超过 1000 条。我尝试将数据写入文本文件,并通过 python 进行分析,但文件大小为 30GB。任何想法在 R 中做到这一点?(正则表达式,应用,..)

我可以通过以下命令计算 numbe rof 公共值:

因此,我写了一个函数:

当我在一次调用中尝试它时有效,但是当我将它与下面的 mapply 一起使用时,它会打印所有列,但我只想要输出中的数字:

那么,为什么它也打印第一列呢?我的命令有什么问题?

0 投票
1 回答
121 浏览

r - R:根据上一行中的值更改一行中的值

我之前问过类似的问题,但似乎我不够清楚。我有一个 32 列的 data.frame。我想在满足此特定条件的每一行下方创建一个重复的行

根据 DWin 的建议,我使用以下代码完成了此操作。

这工作得很好,但现在我需要更改“父”行新创建的重复行的一些值。父行的变量actiontime需要设置为

重复行需要将变量actiontime设置为

这是一个显示数据结构的示例 data.frame(原始数据库中有更多列)。

这是最终的 df 应该是什么样子。

谢谢,蒂姆

0 投票
1 回答
309 浏览

r - 在积分和映射中使用 tryCatch

我有日期(测试):

我正在尝试使用以下代码找到积分。如果发生错误,我希望代码返回 NA ,否则返回整数值。对于第 1 行和第 4 行,它返回值,但对于第 2 和 3 行,它返回错误。不幸的是,我没有成功使用tryCatch.

在以下代码中,对于每个 i(行号),积分函数 (funint) 使用列 x1b1 和 x2b1 或 x1b0 和 x2b0 中的值加上其他四个变量:si、ho、bd 和 i1。

预期输出:

在这方面的任何帮助将不胜感激。

注意:代码有效。我唯一的问题是如何跳过错误(通过在发生错误时返回 NA )并保持代码对其他行有效。