问题标签 [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.
r - R中的dplyr mutate - 添加列作为列的连接
我在使用mutate{dplyr}
函数以向数据框添加新列时遇到问题。我希望一个新列是字符类型,并且包含来自其他列的排序单词的“concat”(也是字符类型)。例如,对于以下数据框:
我想获得一个包含以下第一个元素的新列:
我试过这个:
但我收到一个错误:
感谢您提前提供任何帮助!
r - dplyr:如何在函数中使用 group_by?
我想在另一个函数中使用该dplyr::group_by
函数,但我不知道如何将参数传递给这个函数。
有人可以提供一个工作示例吗?
r - 使用 dplyr 将函数应用于表的每一行?
与我一起工作时,plyr
我经常发现它对adply
我必须应用于每一行的标量函数很有用。
例如
现在我正在使用dplyr
更多,我想知道是否有一种整洁/自然的方式来做到这一点?因为这不是我想要的:
r - 是否有用于与 all=TRUE 合并的 R dplyr 方法?
我有两个要合并的 R 数据框。在直 R 中,您可以执行以下操作:
产生:
我正在使用dplyr
,并且希望使用以下解决方案:
这会产生接近我想要的东西:
在dplyr
我可以看到left_join
,和inner_join
,但这些都没有做with做的事情。semi_join
anti-join
merge
all=TRUE
另外 - 有没有一种快速的方法可以将 NA 设置为 0?到目前为止,我的努力很x$trees[is.na(x$trees)] <- 0;
费力(我需要每列一个命令)并且似乎并不总是有效。
谢谢
r - 使用 dplyr 按行位置引用值
我有df
12 列:
首先,我想按 contig 对它们进行分组,然后为第 12 列生成以下值。我想出了如何做到这一点,dplyr
但我有一些错误。
错误:
Error in summarise_impl(.data, named_dots(...), environment()) :
attempt to use zero-length variable name
.
对于每个组,我想从第二列的第一个值中减去第二个值。如果只有 2 行(最大-最小),我可以轻松做到这一点,但如果超过 2 行,我会错过中间行。
所以我想我会写一个函数并插入,dplyr
但似乎我不能将我自己的函数与dplyr
.
这是我需要的最终输出:
r - 加入dplyr时如何为x和y指定列名?
我有两个要使用 dplyr 加入的数据框。一个是包含名字的数据框。
另一个数据框包含 Kantrowitz 姓名语料库的清理版本,用于识别性别。这是一个最小的例子:
我基本上想test_data
使用kantrowitz
表格从表格中查找名称的性别。因为我要把它抽象成一个函数encode_gender
,所以我不知道要使用的数据集中列的名称,所以我不能保证它会是name
,如kantrowitz$name
.
在基础 RI 中,将以这种方式执行合并:
这将返回正确的输出:
但我想在 dplyr 中执行此操作,因为我正在使用该包进行所有其他数据操作。各种函数的 dplyrby
选项*_join
只允许我指定一个列名,但我需要指定两个。我正在寻找这样的东西:
使用 dplyr 执行这种连接的方法是什么?
(没关系,Kantrowitz 语料库是一种识别性别的不好方法。我正在研究更好的实现,但我想先让它工作。)
r - 通过 dplyr 中的多列索引/键进行子集化(具有 data.table 解决方案)
我正在寻找一种方法来对以下情况进行子集化(或重新考虑我如何处理任务)以留在 dplyr 中,而不是像我在 dplyr 中完成此块之前/之后的大部分分析一样“求助”到 data.table。
情况:给定一个具有多个复制的模拟数据集,我想基于两列键(ID 和 REP)来子集/dplyr::filter。
data.table 解决方案的结果如下:
初始数据结构:
生成的密钥和结果子集:
有没有办法使用这个多列索引来过滤 dplyr?
到目前为止,我想到的唯一“解决方案”是创建一个新列,如下所示:
哪个有效:
但不优雅并且不提供易于扩展的解决方案。
r - 按组“拉伸”跨行汇总值
在使用 R 时,我经常对在 data.frame 上执行操作感兴趣,我在其中按组汇总变量,然后想将这些汇总值添加回 data.frame。这很容易通过示例显示:
产生:
这个技巧——本质上是得到一个命名值的向量,并按组在相关行中“传播”或“拉伸”它们——通常是有效的,尽管class(myDF$Total)
除非"array"
我把.by()
c()
我想知道:
- 此操作是否有常用名称?
- 是否有另一种不那么老套的感觉和/或更快的方法来做到这一点?
- 有没有办法做到这一点
dplyr
?也许有一个我不知道的哈德利批准的动词操作(如变异、排列等)。我知道这很容易summarise()
,但我经常需要将这些摘要放回 data.frame。
r - 将 ddply split 的当前值传递给函数
以下是一些示例数据,我想随着时间的推移对其名称的性别进行编码:
这是一组最小的社会保障数据,仅限于 1890 年和 1990 年的那些名字:
我已经定义了一个函数,它对给定年份或年份范围的社会保障数据进行子集化。换句话说,它通过计算出使用该名字的男性和女性出生的比例来计算给定时间段内一个名字是男性还是女性。这是该函数和一个辅助函数:
现在我想要做的是使用 plyr,特别是ddply
,对要按年份编码的数据进行子集化,并将每个片段与select_ssa
函数返回的值合并。这是我的代码。
调用时select_ssa(year)
,如果我硬编码一个值1890
作为函数的参数,这个命令就可以正常工作。但是当我尝试将当前值传递给它year
时ddply
,我收到一条错误消息:
如何将 on 的当前值传递year
给ddply
?