问题标签 [plyr]

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 投票
5 回答
10012 浏览

performance - R:加快“分组”操作

我有一个模拟,它有一个巨大的聚合并在中间组合步骤。我使用 plyr 的 ddply() 函数对这个过程进行了原型设计,该函数非常适合我的大部分需求。但是我需要这个聚合步骤更快,因为我必须运行 10K 模拟。我已经在并行扩展模拟,但如果这一步更快,我可以大大减少我需要的节点数量。

这是我正在尝试做的合理简化:

感谢所有提示或建议!

0 投票
1 回答
2333 浏览

r - How to use string variables to create variables list for ddply?

Using R's builtin ToothGrowth example dataset, this works:

But I would like to have the subsetting factors be variables, something like

That doesn't work. How should this be done?

I thought perhaps something like this:

But it doesn't work either. I think I am close, but not sure the proper way to do it. I suppose the entire command could be put into a string, followed by an eval() call of the string, but hopefully is there a more elegant way?

0 投票
2 回答
5031 浏览

r - 通过类范围列表对数据帧进行分类或剪切,并用 ddply 进行汇总

我对 ddply 和子集有疑问。

我有这样的数据框 df :

第一步 :

我有一个与 cut_interval 等间隔的列表,如下所示:

所以我在这里有两个级别:[0,10) 和 (10,20]

第二步 :

我希望每个组/类都由我在 v_cut 中的两个级别定义......就像这样:

第 3 步:

我想知道每个组 v_cut 的 x 轴的 v_rank 和 y 轴的时间的可变性,所以我需要用类似的东西计算 v_rank 值的 min、mean、max、sd

*想要的结果:*

我的问题

我不知道如何通过第 1 步 -> 第 2 步:/

如果可以像我在步骤 3 中的示例那样按 v_cut 分组?

是否有可能用 ddply 的“子集”选项做同样的事情?

再一次,非常感谢您的帮助伟大的 R 大师!

更新 1:

我有一个答案去 step1 到 step2 :

我正在使用 plyr,但在这种情况下可能有更好的答案?

回答到第 2 步到第 3 步?

更新 2:

Brandon Bertelsen 用 melt + cast 给了我一个很好的答案,但现在(要理解)我想用 plyr 和 ddply 进行相同的操作 .. 得到不同的结果:

我正在尝试这样的事情:

但我想在我的 sumData 数据框中有 v_cut ,我该如何处理 ddply ?有没有办法做到这一点?或者与初始 df 和 key = v_idn 合并以将列 v_cut 添加到 sumData 是唯一好的答案?

0 投票
2 回答
696 浏览

r - 如何使用 reshape/plyr 汇总数据?

我的数据如下所示:

该数据集中有 40,000 行,包含 54 个独特的模型。

如何获得汇总数据集,显示每个模型在方面 x 轮廓 x 覆盖组合中出现的次数?

0 投票
6 回答
2302 浏览

r - 如何加速这个 R 代码

我有一个包含 18 列和 11520 行的 data.frame (链接到文件),我像这样转换:

根据 system.time(),运行大约需要这么长时间:

这个调用是 webapp 的一部分,所以运行时间非常重要。有没有办法加快这个调用?

0 投票
2 回答
10942 浏览

performance - idata.frame:为什么错误“is.data.frame(df) is not TRUE”?

我正在使用 R 中一个名为 exp ( file here ) 的大型数据框。为了提高性能,建议我从 plyr 中检查 idata.frame() 函数。但我认为我用错了。

我原来的电话,很慢,但它有效:

使用 idata.frame,Error: is.data.frame(df) is not TRUE

所以,我想,也许这是我的数据。所以我尝试了baseball数据集。该idata.frame示例工作正常:dlply(idata.frame(baseball), "id", nrow)但如果我尝试使用类似于我想要的调用的东西baseball,它不起作用:

也许我的错误在于我如何指定分组?任何人都知道如何让我的例子工作?

预计到达时间:

我也试过:

它使用更快的方法来获取中位数,但给出了不同的错误。我认为我根本不了解如何使用 idata.frame。

0 投票
1 回答
482 浏览

r - 合并期间R中的plyr非常慢

我在 R 中使用 plyr 包来执行以下操作:

  • 根据A列和B列从表A中取出一行
  • 从表 B 中找到在 A 列和 B 列中具有相同值的行
  • 将 C 列从表 B 复制到表 A

我已经制作了进度条来显示进度,但是在它显示到 100% 之后它似乎仍在运行,因为我看到我的 CPU 仍然被 RGUI 占用,但它并没有结束。

我的表 A 有大约 40000 行数据,具有唯一的 A 列和 B 列。

我怀疑 plyr 中“split-conquer-combine”工作流程的“combine”部分无法处理这 40000 行数据,因为我可以为另一个具有 4000 行数据的表执行此操作。

有什么提高效率的建议吗?谢谢。

更新

这是我的代码:

0 投票
1 回答
271 浏览

r - 使用 R 处理入院数据(第二部分)

感谢大家提供关于使用 R 处理入院数据的问题的建议,我对这个问题还有一个问题,实际上应该是那个问题之前的任务。

现在我有一个这样的数据集:

我需要将其转换为:

目前我已经使用 转换它ddply,代码附在下面:

unique(Patients_ID)这可以解决我的问题,但是当数据集具有 8818和 1861时,它非常慢(在 P4 3.2 机器上超过 20 分钟)unique(Date)。我该如何改进呢?谢谢!

0 投票
1 回答
421 浏览

r - ddply:推还是拉?

分组数据时 ddply 是推还是拉?即,它是否涉及数据帧上的多次传递,还是只涉及一次?

0 投票
1 回答
562 浏览

r - 填补数据集中缺失的“漏洞”

我有一个这样的数据集:

我有一些来自同一个病人的实验室数据,一些实验室数据没有包含它应该有的出院日期。我需要将缺少的出院日期放入其中,目前我正在使用以下代码:

但这很慢(数据集有 92528 行和 70527 个唯一的患者 ID),我该如何加快速度?谢谢。