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

r - 在连续变量边界处拆分数据帧并在两侧执行计算

我正在尝试根据给定变量的边界值拆分数据框,计算边界两侧的内容并输出矩阵(最好是数据框)。示例代码如下:

我的结果:

我的连续变量是tdata$a1,我想每次使用 2 中的边界值拆分数据帧,对拆分的每个部分1:9执行计算a2,然后返回。

我的问题是:就优雅而言(查看plyr解决方案但无法避免使用第一个 sapply)以及更重要的是正确使用我可能不知道的其他 R 函数,最好的方法是什么。我还担心我的解决方案无法很好地扩展数据帧,而不是我目前拥有的数据帧(约 10000 行)。

0 投票
8 回答
119281 浏览

r - 在给定列上聚合数据框并显示另一列

我在 R 中有一个如下形式的数据框:

我想使用函数在Score列之后聚合它max

但我也想显示与每组列Info的最大值关联的列。Score我不知道该怎么做。我想要的输出是:

有什么提示吗?

0 投票
1 回答
1063 浏览

python - 是否有适用于 python 的 Hadley ddply 的实现?

我发现 Hadley 的R 软件包plyr非常有用,它是一个用于转换数据的出色 DSL。解决的问题是如此普遍,以至于我在其他用例中遇到它,而不是在 R 中操作数据,而是在其他编程语言中。

有谁知道是否存在一个为 python 做类似事情的模块?就像是:

实现起来应该不会太难,但如果它已经存在那就太好了。我会实现它,我会使用itertools.groupbygroup by cols,然后应用该op功能,然后使用 itertools.chain 将其全部链接起来。有更好的解决方案吗?

0 投票
1 回答
12043 浏览

r - 按 ID 聚合并找到时间的 min() 和 max()

我有一个看起来像这样的事务数据库:

PaymentDate 是 posix 格式。对于交易数据,我不想按时间间隔聚合(这是有据可查的),而是按 ID。

使用带有 Posix 时间的 min() 给出第一天, max() 最后一天。这是我需要的每个 ID 的信息。

好的,这是我尝试过的:

显然,如果您需要时间聚合而不是按时间聚合,则聚合不适用于 posix 时间。

但是必须可以获取第一个和最后一个交易日期?!

回复

好的,因为我还不能回答我自己的问题,所以我把它贴在这里:

有趣的。谢谢!

我通常将 as.is=T 选项与 read.csv 一起使用,然后使用 strptime 转换时间。因此,当我查看数据结构时,我得到:

对我来说,这看起来不是一个因素。我可以在整个列上使用 min() 和 max() 并且它可以工作。显然,POSIXlt 比我想象的要麻烦。来自 POSIXlt,我做到了

查看结构,类正确设置为日期。

现在它似乎工作了。但是,只有ddply返回正确的格式“2020-01-25”,而aggregatesummaryBy都返回“18286”格式。那是从 1970 年 1 月 1 日开始的日子吗?好吧,我想我可以将其转换回来。

但是,必须有一些解释。此外, ddply 慢得多。

哦,我为什么要先用strptime呢?好吧,原始文件中的日期格式不同,“%d-%m-%y”。直接使用 as.Date 似乎不起作用。

编辑

我的数据的输入

dput 按照你的建议做后:

原始数据的输入

0 投票
2 回答
114 浏览

r - 如何从 R 中的开始和结束日期列表中计算组中的当前人员

或者更确切地说,我怎样才能做得比我捏造的更好。

我有一个数据框,其中包含一组名称以及开始和结束日期。我想生成一个数据框,其中包含随着时间的推移组中的人数。注意,有些人还没有离开(结束日期为 NA)

这是一个示例数据集

在这里,我创建了一个数据框,其日期涵盖了我想要的范围。这感觉很脏。

现在我使用 ddply 来产生结果。

一定有更简单的方法吗?

0 投票
2 回答
7183 浏览

r - 将文本添加到匹配条件的 ggplot geom_jitter 点

如何将文本添加到使用 geom_jittered 渲染的点以标记它们?geom_text 不起作用,因为我不知道抖动点的坐标。您能否捕获抖动点的位置,以便我可以传递给 geom_text?

我的实际用法是在其上绘制带有 geom_jitter 的箱线图以显示数据分布,我想标记异常点或符合特定条件的点(例如,用于为绘图着色的值的下 10% )。

一种解决方案是捕获抖动图的 xy 位置并稍后在另一层中使用它,这可能吗?

[更新]

从 Joran 的回答中,一个解决方案是使用基本包中的 jitter 函数计算抖动值,将它们添加到数据框并与 geom_point 一起使用。对于过滤,他使用 ddply 有一个过滤列(一个逻辑向量)并将其用于对 geom_text 中的数据进行子集化。

他要求一个最小的数据集。我刚刚修改了他的示例(标签列中的唯一标识符)

这是 joran 示例与我的数据并将 id 的显示降低到最低 1% 的结果 带有抖动点和标签的箱线图在较低的 1% 值中

这是对代码的修改,使另一个变量具有颜色并显示该变量的一些值(每组的最低 1%):

带有抖动点和标签的箱线图在较低的 1% 值中

0 投票
2 回答
4480 浏览

r - 引用变量中的 ddply 和空格

是否可以在 ddply 中使用空格?

我正在使用列名中有很多空格的电子表格中的数据,我想保留这些名称,因为稍后我想用与原始列名相同的列名导出这些数据。有 200 多个列,使用 make.names 当然会给我正确的名称,但是我会丢失原始的列名。

但是 ddply 似乎不喜欢空格?有解决方法吗?

0 投票
2 回答
2912 浏览

r - 在函数中使用 ddply

我正在尝试在其中使用 ddply 制作一个函数。但是我无法上班。这是一个复制我得到的虚拟示例。这和这个bug有什么关系吗?

0 投票
2 回答
634 浏览

r - 使用ddply时如何检索全局索引?

我试图从plyr包中的 Diamonds 数据集中找到价格/克拉方面的最佳交易

所以我愿意

但是当我这样做时,我得到

因此,该索引似乎取自 ddply 制作的子组。这里只有第一个索引 4 对应于全局索引。例如,如果我查找 new[2,] 它不是 Fair、D、VS1 类型。

关于如何轻松检索全局索引位置的任何想法?

例如,您将如何优雅地添加一个 id 列?有更好的解决方案吗?

0 投票
1 回答
270 浏览

r - R模型规范中的语法问题

查看 plyr 教程,我发现以下准备工作:

现在一些模型

有什么区别?

当我检查

在这两种情况下,它都会产生具有相同数字的相同列。
然而回归系数完全不同......

知道这个符号是什么意思吗?