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

r - R中的dplyr mutate - 添加列作为列的连接

我在使用mutate{dplyr}函数以向数据框添加新列时遇到问题。我希望一个新列是字符类型,并且包含来自其他列的排序单词的“concat”(也是字符类型)。例如,对于以下数据框:

我想获得一个包含以下第一个元素的新列:

我试过这个:

但我收到一个错误:

感谢您提前提供任何帮助!

0 投票
4 回答
22826 浏览

r - dplyr:如何在函数中使用 group_by?

我想在另一个函数中使用该dplyr::group_by函数,但我不知道如何将参数传递给这个函数。

有人可以提供一个工作示例吗?

0 投票
8 回答
98288 浏览

r - 使用 dplyr 将函数应用于表的每一行?

与我一起工作时,plyr我经常发现它对adply我必须应用于每一行的标量函数很有用。

例如

现在我正在使用dplyr更多,我想知道是否有一种整洁/自然的方式来做到这一点?因为这不是我想要的:

0 投票
1 回答
75646 浏览

r - 如何使用 dplyr 将累积列添加到 R 数据框?

我和这篇文章有同样的问题,但我想使用dplyr

使用 R 数据框,例如:

如何添加与 id 匹配的累积总和列?

如果没有dplyr上一篇文章的公认解决方案是:

0 投票
2 回答
26123 浏览

r - 是否有用于与 all=TRUE 合并的 R dplyr 方法?

我有两个要合并的 R 数据框。在直 R 中,您可以执行以下操作:

产生:

我正在使用dplyr,并且希望使用以下解决方案:

这会产生接近我想要的东西:

dplyr我可以看到left_join,和inner_join,但这些都没有做with做的事情。semi_joinanti-joinmergeall=TRUE

另外 - 有没有一种快速的方法可以将 NA 设置为 0?到目前为止,我的努力很x$trees[is.na(x$trees)] <- 0;费力(我需要每列一个命令)并且似乎并不总是有效。

谢谢

0 投票
1 回答
2029 浏览

r - 使用 dplyr 按行位置引用值

我有df12 列:

首先,我想按 contig 对它们进行分组,然后为第 12 列生成以下值。我想出了如何做到这一点,dplyr但我有一些错误。

错误:

Error in summarise_impl(.data, named_dots(...), environment()) : attempt to use zero-length variable name.

对于每个组,我想从第二列的第一个值中减去第二个值。如果只有 2 行(最大-最小),我可以轻松做到这一点,但如果超过 2 行,我会错过中间行。

所以我想我会写一个函数并插入,dplyr但似乎我不能将我自己的函数与dplyr.

这是我需要的最终输出:

0 投票
2 回答
154375 浏览

r - 加入dplyr时如何为x和y指定列名?

我有两个要使用 dplyr 加入的数据框。一个是包含名字的数据框。

另一个数据框包含 Kantrowitz 姓名语料库的清理版本,用于识别性别。这是一个最小的例子:

我基本上想test_data使用kantrowitz表格从表格中查找名称的性别。因为我要把它抽象成一个函数encode_gender,所以我不知道要使用的数据集中列的名称,所以我不能保证它会是name,如kantrowitz$name.

在基础 RI 中,将以这种方式执行合并:

这将返回正确的输出:

但我想在 dplyr 中执行此操作,因为我正在使用该包进行所有其他数据操作。各种函数的 dplyrby选项*_join只允许我指定一个列名,但我需要指定两个。我正在寻找这样的东西:

使用 dplyr 执行这种连接的方法是什么?

(没关系,Kantrowitz 语料库是一种识别性别的不好方法。我正在研究更好的实现,但我想先让它工作。)

0 投票
2 回答
1642 浏览

r - 通过 dplyr 中的多列索引/键进行子集化(具有 data.table 解决方案)

我正在寻找一种方法来对以下情况进行子集化(或重新考虑我如何处理任务)以留在 dplyr 中,而不是像我在 dplyr 中完成此块之前/之后的大部分分析一样“求助”到 data.table。

情况:给定一个具有多个复制的模拟数据集,我想基于两列键(ID 和 REP)来子集/dplyr::filter。

data.table 解决方案的结果如下:

初始数据结构:

生成的密钥和结果子集:

有没有办法使用这个多列索引来过滤 dplyr?

到目前为止,我想到的唯一“解决方案”是创建一个新列,如下所示:

哪个有效:

但不优雅并且不提供易于扩展的解决方案。

0 投票
1 回答
176 浏览

r - 按组“拉伸”跨行汇总值

在使用 R 时,我经常对在 data.frame 上执行操作感兴趣,我在其中按组汇总变量,然后想将这些汇总值添加回 data.frame。这很容易通过示例显示:

产生:

这个技巧——本质上是得到一个命名值的向量,并按组在相关行中“传播”或“拉伸”它们——通常是有效的,尽管class(myDF$Total)除非"array"我把.by()c()

我想知道:

  1. 此操作是否有常用名称?
  2. 是否有另一种不那么老套的感觉和/或更快的方法来做到这一点?
  3. 有没有办法做到这一点dplyr?也许有一个我不知道的哈德利批准的动词操作(如变异、排列等)。我知道这很容易summarise(),但我经常需要将这些摘要放回 data.frame。
0 投票
1 回答
370 浏览

r - 将 ddply split 的当前值传递给函数

以下是一些示例数据,我想随着时间的推移对其名称的性别进行编码:

这是一组最小的社会保障数据,仅限于 1890 年和 1990 年的那些名字:

我已经定义了一个函数,它对给定年份或年份范围的社会保障数据进行子集化。换句话说,它通过计算出使用该名字的男性和女性出生的比例来计算给定时间段内一个名字是男性还是女性。这是该函数和一个辅助函数:

现在我想要做的是使用 plyr,特别是ddply,对要按年份编码的数据进行子集化,并将每个片段与select_ssa函数返回的值合并。这是我的代码。

调用时select_ssa(year),如果我硬编码一个值1890作为函数的参数,这个命令就可以正常工作。但是当我尝试将当前值传递给它yearddply,我收到一条错误消息:

如何将 on 的当前值传递yearddply