问题标签 [do.call]

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 投票
3 回答
696 浏览

r - do.call 和 order 将每一行排序为矩阵的降序?

我想按行对这个矩阵进行降序排序

如何使用 do.call 和 order 对矩阵进行排序?

编辑。固定上面的矩阵以符合上面的代码。

0 投票
1 回答
11371 浏览

r - R:pi[[j]] 中的错误:下标越界——数据帧列表上的 rbind

我正在尝试 rbind 一个大的数据帧列表(outputDfList),它是通过将一个复杂的函数应用到一个大表来生成的。您可以通过以下方式重新创建 outputDfList:

我的代码是

我收到的错误消息:

我仔细检查了每个数据帧的列号,它们都是一样的。我还尝试使用“options(error=recover)”进行调试,但我对它的熟悉程度不足以解决确切的问题。任何帮助表示赞赏。谢谢你。

0 投票
1 回答
747 浏览

r - arbitrary number of plots for grid.arrange

I'm trying to plot an arbitrary number of bar plots with rmarkdown separated by 2 columns. In my example there will be 20 total plots so I was hoping to get 10 plots in each column, however, I can't seem to get this to work with grid.arrange

When I knit this to html I'm getting the following output:

enter image description here

I was hoping I would get something along the lines of:

enter image description here

but even with this the figure sizes are still funky, I've tried playing with heights and widths but still no luck. Apologies if this is a long question

0 投票
0 回答
50 浏览

r - 使用 do.call 在 R 中创建多行的聚合

我有一个数据框(日期、库存、价格、大小),我想为其聚合实例数、对大小求和并获得价格的最小值和最大值。该部分有效,但是,最终输出包含多行相同的代码。例如,DGAZ 在 cand 数据框中出现两次,在 results_all 部分中出现两次。在 results_all 中,我希望每个代码有一行。

DGAZ 在 Cand 中:

result_all 中的 DGAZ:

你知道这是为什么吗?

请注意,我最终会在多个日期执行此操作,这就是为什么有 2 个 do.call 语句的原因。

可重现的代码:

谢谢你。

0 投票
1 回答
583 浏览

r - 如何在具有并行计算的自定义函数中有效地使用 do.call 函数

我有一个旨在:

  1. 在两个模型的已知参数集(空和替代)下模拟两个数据集
  2. 将两个模型重新拟合到模拟数据

我想通过将并行包与 pblapply 包结合使用来加快计算时间。

这是功能:

此功能有效,但在并行计算过程中似乎存在瓶颈。我怀疑do.call函数引入了冗余,但我不确定......我仍然需要实现 do.call 或其他类似函数,因为我需要在 pblapply 中提供参数列表,并且参数特定于每个拟合。

为了证明并行计算过程中性能不足,我模拟并使用了以下数据:

在具有 i3 CPU 的计算机上,我使用了 3 个 worker 并获得了以下结果:

当我运行与上面相同但没有并行计算(do.parallel = F)时,计算通常花费更少的时间:

之后,我只是在全局环境中(不在函数内)运行我的部分函数,​​但使用并行计算。代码和结果如下:

请注意,全局环境中的并行计算时间远低于我的自定义函数中的时间......

最后,我只是在全局环境中进行并行计算,但没有 do.call 函数,结果证明它是最有效的:

我感谢任何可能帮助我在我的函数中实现 do.call 的建议和/或解决方案,并结合并行处理提高性能。

0 投票
1 回答
2079 浏览

r - do.call() 不喜欢带有列表的基本函数“c”

我有一个更大的代码部分,但我已经将问题缩小到这个 - 所以我想返回一个连接列表。

所以上面它抱怨第二个参数不是一个列表。

为什么这不会返回串联列表?C 是一个合法的函数,它被传递一个列表?

所以“什么”是它抱怨的函数参数。

0 投票
1 回答
641 浏览

r - foreach %dopar% 环境中的嵌套 do.call 找不到使用 .export 传递的函数

do.call在并行化环境中嵌套了多个级别(每个级别本身都使用参数中命名的函数,而不是硬编码)%dopar%,并且最里面的函数无法找到来自外部环境的函数。我知道.export参数 onforeach并正在使用它,但不知何故,命名函数并没有沿着整个链传播。

我将问题简化为以下测试用例,它确实存在此问题:

我没有给出正确答案(带有一些数字的列表),而是得到:

添加if (!exists("simple.func")) stop("Could not find parse.data in scope main.func")到每个函数的开头(根据需要更改范围的名称)表明它是inner.func看不到的simple.func——即使outer.func 确实看到了。

我还测试了上面的几个变体,或者main.funcouter.func编码下一级函数,而不是从参数中使用它。这两种变体有效(例如,给出预期的结果),但对于现实世界的情况,我想保留将子函数作为参数的普遍性。

我也可以simple.func手动传递链,将它作为一个额外的参数包含在内,但这看起来非常混乱,为什么在simple.func应该作为环境的一部分传递时有必要呢?

有没有人有关于不那么笨拙的解决方案的想法,或者这个问题的根本原因?

0 投票
1 回答
106 浏览

r - do.call 基于先前 sapply(seq_along()) 迭代的输出

我有一些算法的命名列表,可能看起来像这样

并且可能包含任意数量的附加算法。每种算法都对空间对象(spObj栅格类)执行操作并返回修改后的栅格。然后,我想do.call在父函数中将这个(和所有其他)算法应用于原始输入。然而,我另外想要实现的是定义算法的顺序应用,即在前一个算法的输出上。我想出了以下代码,但我对提高性能的其他建议感到好奇,因为这是可能的。

难道不能使用某种apply()构造来代替for-loop吗?我不确定我是否只是不充分理解apply/的逻辑,do.call或者这在 R 中实际上是不可能的。


我修改为 for-loop 以使其与 Davids 的建议相媲美,并对其进行了微基准测试:

这导致

这是 for 循环实际上并不比任何其他解决方案慢的示例之一吗?

0 投票
3 回答
99 浏览

r - 将列表与 do.call 组合,同时将列表的每个条目保留在一行中

如果之前有人问过这个问题,请原谅我......

我有多个列表,我希望组合如下

我想要的是这样的:

我尝试了以下方法,但这会将列表的每个字符放在不同的行上,这等于每个列表的不同行数:

有没有办法得到我想要的?

谢谢

0 投票
1 回答
102 浏览

r - 将多个 .csv 数据文件合并到一个数据帧中

我有许多 .csv 文件,我保存在我 PC 上的一个文件夹中。然后,我创建一个这些数据集的列表,如下所示:

.csv 文件包含相同的列,小数使用.,列由 . 分隔;。我尝试使用以下代码组合这些数据集:

但它只读取第一个文件。我怎样才能将所有 15 个 .csv 文件合并到一个数据框中?

当我运行不同的代码时,我收到以下错误消息:

我假设出了点问题,其中一个文件(实际上我知道它在一个文件中只有几行)只有 7 列而不是 8 列。我不想单独查看每个文件以尝试查找是否有一些异常。我怎样才能让这些不遵循模式的行自动删除?

我的数据文件看起来像: