小编EMD*_*EMD的帖子

当您需要按变量分组时,是否有直观的解释为什么 data.table 操作比 tidyverse 操作更快?

我从这里这里这里的优秀资源中了解到,与依赖矢量扫描的相比,data.table利用自动索引(key即创建增压行名称)和基于二进制搜索的子集tidyverse

我知道向量扫描需要扫描每一行并创建nrow(dataset)长度逻辑向量,而重复执行此操作效率不高。

我想知道是否有人可以帮助我准确地确定这两种方法如何意味着data.tabletidyverse需要按变量分组时相比,操作运行速度要快得多。即是否因为data.table自动索引group_by列并将其分解为分组的子集并对每个子集运行操作,而矢量扫描方法需要生成n = unique groups多个逻辑矢量,然后在整理结果之前对每个单独的逻辑矢量运行操作?

视觉图

此外,根据data.table 小插图

我们可以在多个列上设置键,并且列可以是不同的类型......

由于行被重新排序,一个 data.table 最多可以有一个键,因为它不能以多种方式排序。

我们可以在多列上设置键,而 adata.table最多只能有一个键,这意味着什么?即,在运行操作的任何时刻,是否只有一个引用键,但是当我们进行到整个操作的另一个组件时,引用键设置的哪一列可以更改?

先感谢您!

r data.table

6
推荐指数
1
解决办法
166
查看次数

标签 统计

data.table ×1

r ×1