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

r - R 中最快的 Tall-Wide 旋转

我正在处理一个简单的表格

对(日期,变量)是唯一的。我想把这张桌子变成一张宽幅桌子。

而且我想以最快的方式做到这一点,因为我必须在具有 1e6 条记录的表上反复重复该操作。tapply()在 R 原生模式下,我相信reshape()d*ply()都在速度方面由data.table. 我想针对基于 sqlite 的解决方案(或其他数据库)测试后者的性能。以前有这样做过吗?有性能提升吗?而且,当“宽”字段(日期)的数量是可变的并且事先不知道时,如何在 sqlite 中将高到宽转换?

0 投票
1 回答
778 浏览

r - aaply fails on a vector

I am trying to understand how to use the excellent plyr package's commands on a vector (in my case, of strings). I suppose I'd want to use aaply, but it fails, asking for a margin. But there aren't columns or rows in my vector!

To be a bit more concrete, the following command works, but returns results in a wierd list. states.df is a data frame, and region is the name of the state (returned using Hadley's map_data("state") command). Thus, states.df$region is a vector of strings (specifically, state names). opinion.new is a vector of numbers, named using state names.

What I'd like to do is:

Where ch is the vector of numbers looked up or pulled from opinion.new. But aaply requires an array, and fails on a vector.

Thanks!

0 投票
2 回答
3157 浏览

r - 在函数中获取和处理 ddply 中的整行

在 ddply 中抓取一个或多个进行处理很容易,但是有没有办法抓取整个当前行并将其传递给函数?或者抓取一组在运行时确定的列?

让我举例说明:

给定一个像

我可以编写一个函数来对沿数据框的一行的命名列求和,如下所示:

当我这样调用它时它会起作用:

所以我想把它包装在一个匿名函数中,并在 ddply 中使用它来将它应用到表中的每一行,就像下面的例子

我想找到一个解决方案,其中可以在运行时确定要操作的列集,所以如果有某种方法可以从 ddply 的 args 中删除它并将其传递给一个接受任意数量的 args 的函数,那也可以。

编辑:需要明确的是,驱动这个的真正应用程序不是总和,但这是一个更简单的解释

0 投票
2 回答
3011 浏览

r - ddply 如何将因子作为“拆分”变量处理?

我有一个 20 列的 data.frame。前两个是因子,其余是数字。我想将前两列用作拆分变量,然后将其mean()应用于其余列。

这似乎是一项快速而简单的工作ddply(),但是,输出 data.frame 的结果并不是我想要的。这是一个只有一列数据的最小示例:

输出是:

警告重复 8 次,大概每次调用mean(). 我猜这来自试图取一个因素的平均值。我可以这样写:

或者

两者都有效(不给出 NA),但我宁愿避免写出 18 个这样x = mean(x)的语句,每个数字列都有一个。

有没有通用的解决方案?ddply如果在其他地方有更好的答案,我不同意。

0 投票
2 回答
1611 浏览

list - Make regressions and predictions for groups in R

I have the following data.frame d from an experiment:

In the last 8 years, y was measured roughly once a month (exact date in t) for each level of f. Sometimes there are 2 measures per month, sometimes a couple of month passed without any measures.

Sorry for not providing example data, but making up unregular time series goes beyond my R knowledge. ;)

I'd like to do the following with this data:

  1. make a regression using the loess() function (y ~ t), for each level of f
  2. make a prediction of y for the first day of each month and each level of f

The first point I think I solved by using Hadleys answer to this question:

So, now I have a models (class list), with a model for each level of f. I also created times for which I'd like to predict y for each level of f like this:

But now I'm stuck on how to make predictions for each model. Something like this should work (pseudocode):

As a result, I'd like to have this data.frame:

  • y.predicted
  • f
  • t.predicted (= dates)

Any help would be greatly appreciated.

0 投票
3 回答
1867 浏览

r - 如何使 doSMP 与 plyr 很好地配合?

此代码有效:

虽然此代码失败:

我正在使用 R 2.1.12、plyr 1.4 和 doSMP 1.0-1。有没有人想出办法解决这个问题?

编辑:作为对安德烈的回应,这里有一个进一步的说明:

前三个功能有效,但它们都需要大约 3 秒。函数 #2 发出警告,表示没有注册并行后端,因此按顺序执行。函数 #4 给出了我在原始帖子中引用的相同错误。

/ 编辑:curioser 和好奇者:在我的 mac 上,以下工作:

但这失败了:

这也失败了:

所以我认为 foreach 的各种并行后端是不可互换的。

0 投票
2 回答
5523 浏览

r - 在 R 中使用 plyr 制作更好的汇总统计表

每次我得到一个新的数据集时,我做的第一件事就是查看汇总统计信息。该summary函数做得很好,但我经常对标准偏差、具有不同断点的分位数、观察次数等感兴趣。此外,表示summary并不是真正最简单的消化方法或您在期刊中看到的内容(即,summary是水平的而不是垂直的)。

例如,这是我从一些虚构数据的摘要中得到的。

但是,假设我真的想要更多这样的东西。

对于这个小数据集(即只有几个公司特征),这很容易。但我有更多或更多的统计数据或更多的切片,这可能会变得乏味。

reshape2我用and试过这个plyr,但得到一个错误。

这给我留下了两个问题:

  1. 我在做什么错ddply
  2. 我在这里重新发明轮子吗?鉴于这是我读写的所有内容中的表 1,是否存在我尚未找到的现有解决方案?

谢谢!

0 投票
1 回答
5504 浏览

r - doMC vs doSNOW vs doSMP vs doMPI:为什么'foreach'的各种并行后端在功能上不等效?

我有一些测试代码,我一直在不同的机器上运行,总是得到相同的结果。我认为各种 do... 软件包背后的理念是它们可以互换用作 foreach 的 %dopar% 的后端。为什么不是这样?

例如,此代码片段有效:

虽然这些代码片段中的每一个都失败了:

在所有四种情况下,foreach(i = 1:3,.combine = "c") %dopar% {sqrt(i)}产生完全相同的结果,所以我知道我已经安装了软件包并且在我测试过的每台机器上都可以正常工作。

doMC 与 doSMP、doSNOW 和 doMPI 有何不同?

0 投票
3 回答
317 浏览

r - 转换后 plyr 不返回新变量

我正在尝试学习如何在 R/plyr 中编写函数。我知道有更简单的方法可以完成我在下面展示的操作,但这不是重点。

在下面的示例中,PLYR 不会将新变量返回到我的新数据框

我错过了什么明显的东西?

0 投票
2 回答
235 浏览

r - ddply 返回太多结果

出于某种原因,自从升级到 R-2.13.0 并升级到 plyr_1.5.1.tar.gz 后,我得到的结果比我预期的要多……我在旧版本的 plyr 上尝试了这个(不幸的是,版本不确定我刚刚覆盖了它...)

我不明白为什么结果 2 的行数是 results1 的两倍,而 results3 的行数是它的三倍——原来的 results1 只是复制了两次或三次。

我使用旧版本的 plyr 获得了 R 版本 2.11.0 Patched (2010-05-01 r51907) 的方便副本,我期待的结果是……

我从 R 版本 2.13.0 (2011-04-13) 得到的结果

为什么 results2 有 8 行而不是 4 行,而 results3 有 12 行而不是 4 行?

谢谢,肖恩