问题标签 [dplyr]

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 回答
4105 浏览

r - 将函数参数传递给 dplyr select

要从数据框中选择几列,我可以做

我想写一个类似于

但是运行f(df, col1, col2)给了我错误

编辑——稍微不那么琐碎的例子:

假设我想做

但具有不同的数据集和不同的变量名称。我可以重用代码并替换mtcars,cylhp. 但我宁愿把它全部包装在一个函数中

0 投票
2 回答
691 浏览

r - 使用 plyr / dplyr 每两年计算一次平均值

我有一个庞大的数据集,包含 34 年中 500 只股票的每日收益。我首先运行 ddply 来创建年度中位数并返回列:

目前的数据如下所示:

现在我想创建一个新列,其中包含过去两年每个股票代码的平均中位数数据:

对此的任何帮助将不胜感激!

0 投票
3 回答
609 浏览

r - 使用 `dplyr` 和 `data.table` 对 tall 数据进行 `spread= a - b` 计算

我有一些高格式的(金融时间序列)数据:

DT

我想计算第三个变量spread,其中spread = a - b对于每个常见Date行(基本上是两个时间序列之间的传播 - 金融领域的常见转换)。

期望的输出:

我知道当我dcast.data.table将数据转换为宽格式(即到带有列的表c("Date", "a", "b"))时的解决方案,但是由于大数据的性能问题,有没有一种优雅的方法可以使用 a)dplyr和 b)直接以高格式执行此操作data.table(两部分问题)?

理想情况下dplyr,我正在寻找像mutate(tbl_dt(DT, tall=TRUE), spread=a-b). (免责声明:我是一个完整的新手dplyr

真实数据集:

0 投票
6 回答
150661 浏览

r - 使用 dplyr 删除重复的行

我有一个这样的data.frame -

我想根据前两列删除重复的行。预期产出 -

我正在专门寻找使用dplyr包的解决方案。

0 投票
2 回答
17904 浏览

r - dplyr 输出类 data.frame

我可以这样总结一个数据框dplyr

要将输出转换回 class data.frame,我目前的方法是:

有什么方法可以dplyr输出一个类data.frame而不必使用as.data.frame

0 投票
1 回答
289 浏览

r - dplyr 仅返回分组和计算列

我想知道是否有办法做到这一点:

同时跳过select位。我认为以下应该有效(但由于多种原因没有):

请注意,在此示例中,我替换mutateselect希望仅此而已。这也不起作用,因为summarize期望表达式返回 1 个值:

显然,这没什么大不了的,但想知道是否有更简单的方法来复制默认data.table行为:

它只产生by列和计算值:

0 投票
3 回答
153 浏览

r - 如何根据特定列或组过滤数据框?

我有一个如下的df...

对于每个唯一 ID(例如 Bra004793),我想通过选择最大 V8 来选择最佳 V1。例如在这种情况下,我想获得以下 id

但不幸的是,我正在尝试的 dplyr 包不起作用。这是我到目前为止所尝试的..

在这里你可以看到即使我得到了正确的结果,我也没有得到正确的 V1 id。任何人都可以指出我做错了什么。

谢谢乌彭德拉

0 投票
2 回答
756 浏览

r - dplyr 表达式求和 sum(!is.na(Field1) + !is.na(Field2)...) 给出错误的数字

我试图通过每行中非 NA 的计数在 dplyr 中总结(/突变)......不断给出错误的答案。

像布尔值一样的算术sum(FALSE + TRUE + FALSE + TRUE + TRUE)确实加起来是 3,那么问题出在哪里?为什么 dplyr 没有捕捉到错误?

通过使用格雷码进行调试,我看到!is.na()除了 Field1 之外的所有 s 都表现得很奇怪:

只给出 16 或 0

0 投票
0 回答
165 浏览

r - 为什么在 dplyr 和 plyr 中总结工作的方式不同?

我正在运行 dplyr::summarize 的示例代码,但没有得到我期望的结果。

这里发生了什么?

0 投票
6 回答
12310 浏览

r - 如何通过 group_by 中的 group-number 对数据表进行编号/标记?

我有一个 tbl_df,我想在其中group_by(u, v)观察到的每个不同的整数组合(u, v)


编辑:这随后通过group_indices()dplyr 0.4.0中添加(现已弃用)来解决


a)然后我想为每个不同的组分配一些任意不同的数字标签= 1,2,3 ...例如组合(u,v)==(2,3)可以获得标签1,(1,3)可以得到 2,以此类推。mutate()如果没有三步汇总和自联接,如何使用 one 来做到这一点?

dplyr 有一个简洁的功能n(),但它给出了其组内元素的数量,而不是的总数。data.table这将简单地称为.GRP

b)实际上我真正想要分配一个字符串/字符标签('A','B',...)。但是按整数对组进行编号就足够了,因为我可以integer_to_label(i)如下使用。除非有一个聪明的方法来合并这两者?但不要为这部分出汗。