问题标签 [dtplyr]

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 投票
0 回答
171 浏览

r - data.table 对象上的 dtplyr 和计数冲突

似乎是什么时候dtplyr安装的dplyrdata.table我遇到了这个问题

这曾经有效,但现在不行。为什么会这样?

此外,当我在没有dtplyr它的情况下运行此过程时,但没有dtplyr提供的优势。

我正在使用这些软件包的最新版本(0.7.0、1.10.4、0.0.2 dplyr)。data.tabledtplyr

0 投票
1 回答
159 浏览

r - 每个分类变量组合的平均价格 - R

我正在使用钻石数据集。

现在我想获得平均价格,这样对于每颗钻石,我都会看到价格,旁边还有平均价格(基于颜色和 cut_new 的组合)。

在此处输入图像描述

我尝试了以下代码,但无法正确使用:

尝试1:

尝试2:

任何想法如何使其中一个工作?

谢谢

0 投票
1 回答
211 浏览

r - 通过 dplyr::filter 传输时如何保留 data.table 类?

我有一个 data.table 对象,我通过几个 dplyr 函数进行管道传输。
当通过 时dplyr::select,结果对象的类是 data.table + data.frame。
但是当我通过它时dplyr::filter,输出类只是 data.frame 。

为什么会发生这种情况,如何确保在使用时保留 data.table 类dplyr::filter

0 投票
1 回答
299 浏览

r - 在函数内部使用 dplyr::tbl

我现在有关于在函数内部使用 dplyr 的各种答案,但我尝试了所有方法,但都没有奏效。

这是我的简单功能:

我尝试了智慧rlang::!!和其他方法,但都没有奏效。这应该很简单,但我无法让它工作。

0 投票
4 回答
1091 浏览

r - 将 dplyr 转换为 data.table

所以我正在尝试翻译一些 dplyr 代码。我试图从将 dplyr 转换为 data.table 的包中获得帮助,但它仍然不起作用。错误row_number来自dplyr..

我需要dplyr代码中的所有步骤(即使它们在这里没有意义mtcars

reprex 包(v0.3.0)于 2019 年 7 月 14 日创建

0 投票
3 回答
144 浏览

r - 在与 dtplyr 冲突的列连接后选择

如果我运行以下简单示例,我会得到预期的输出:

请注意,使用添加和后缀a的标准dplyr格式正确管理冲突的列。.x.y

但是,如果我现在尝试删除其中一列:

有趣的是,如果我尝试选择其中一a列 ( select(a.x)),我会得到相同的错误,但是...select(a)

其中选定的列是明确的dt1$a,但由于某种原因,给定的列名是a.b。(如果我尝试select(a.b),我会得到同样的object not found错误)。

同时,如果我尝试 drop a,两a列都会被删除:

那么,如何select在表具有冲突(而不是连接)列的连接中使用?

编辑:

正如一些答案中提到的,我显然可以在选择之前执行惰性评估,这很有效。但是,它会引发警告(因为我想将我的对象保留为 a data.table,而不是 a data.frame)所以它似乎不是预期的方法:

0 投票
1 回答
142 浏览

r - 使用 dtplyr 的 group-filter-select 翻译不正确

使用 dplyr 可以轻松执行 group-filter-select。在下面的例子中,我们有一些公司今年不同季度的数据。我现在想过滤到第一季度没有第四季度数据的公司(在本例中是第二家公司),去掉季度标签。

但是,对 dtplyr 执行相同操作会返回一个空表:

奇怪的是显示的翻译:

这是不正确的。如 dtplyr's own docs中所述,正确的调用需要使用过滤.SD

(副栏是自动包含的,所以.SDcols应该省略它们以避免重复)

有趣的是,如果我们省略select,则翻译(因此输出)是正确的:

因此,作为一种解决方法,我可以as.data.table()select. 这可行,但会引发烦人的警告:

我很难认为这是预期的行为,但想在将其扔到dtplyrGithub 跟踪器之前检查这里。

0 投票
3 回答
3090 浏览

r - 我不能在 data.table 中使用 dtplyr 做什么

我应该把我的学习精力投入到 R 中的数据争论上,特别是在dplyrdtplyr之间data.table吗?

  • dplyr主要使用,但是当数据太大时我会使用data.table,这是一种罕见的情况。所以现在dtplyrv1.0 作为一个接口出来了data.table,从表面上看,我似乎再也不用担心使用这个data.table接口了。

  • 那么目前无法使用的最有用的功能或方面data.table什么,并且可能永远不会使用?dtplyrdtplyr

  • 从表面上看,它dplyr的好处data.table听起来像是dtplyr会超车dplyr的。dplyr一旦dtplyr完全成熟,会有什么理由使用吗?

注意:我不是在问dplyrvs data.table(如data.table vs dplyr:一个人可以做得很好,而另一个人不能或做得不好?),但考虑到对于特定问题,一个人比另一个人更受欢迎,为什么不呢?不是dtplyr要使用的工具。

0 投票
2 回答
63 浏览

r - 根据以前的值更新列值(一次处理总是处理)

我想知道是否有更快的方法使用 data.table/dplyr 来按组替换基于先前值的值。

假设我的原始数据表如下所示:

这看起来如下:

在这里,对于每个人(姓名)和时间段(年),有一列(治疗)表明他们是否已被分配治疗。

我正在考虑另一种治疗方法,即一旦对个体进行治疗,该个体将继续接受治疗。因此,修改后的数据表应如下所示:

请注意,对于 A 人,在 2001 年接受治疗意味着他们在接下来的几年中也接受了“治疗”。

因为我有一个非常大的数据表,我想知道是否有一种非常快速的修改方法来实现这一点。

0 投票
0 回答
143 浏览

r - 从 dtplyr 粘贴 data.table 代码会导致代码变慢

我今天开始将我的一些代码从 dplyr 迁移到 dtplyr,当我意识到从调用 lazy_dt()无需调用 as_tibble()。从这里我可以注释掉 dtplyr 代码以保持 dplyr 的可读性,同时获得 data.table 的速度。

然而,当我这样做时,我注意到 dtplyr 会输出有时比它的 dtplyr 对应物慢的 data.table 代码。由于翻译成本,这似乎违背了 dtplyr 应该总是比 data.table 慢的直觉。任何想法为什么会这样?该文档指出,将 dplyr::mutate 翻译为 data.table 术语并不理想。这也许是原因?

代表:

有趣的是,这里的 dtplyr 似乎并不总是比 data.table 慢。我不确定为什么我会看到我在这里看到的东西。

编辑:改写问题更清楚。我的想法是,如果我永远不必向任何人展示我的代码,那么我应该始终使用 data.table,因为它比 dtplyr 快。然而,根据我的基准测试经验,似乎有些情况下 dtplyr 比 data.table 快。为什么?直觉似乎表明这永远不会发生。我误解了 dtplyr 的作用吗?