问题标签 [data.table]

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 投票
4 回答
59370 浏览

r - data.table 中的子集

我正在尝试在 R(不是data.frame)中对 data.table (来自包data.table )进行子集化。我有一个 4 位数的年份作为密钥。我想通过一系列年份来细分。例如,我想提取 1999、2000、2001 年的所有记录。

我尝试在我的DT[J(year)]二进制搜索语法中传递以下内容:

但这些似乎都不起作用。任何人都知道如何做一个子集,其中您要选择的年份不仅仅是 1 年,而是多年?

0 投票
1 回答
542 浏览

r - 在 R 中选择 data.table 键

如何为data.table对象选择正确的键?

这些考虑因素是否类似于 RDBMS 的考虑因素?我的第一个猜测是查看一些有关 RDBMS 的索引和键的文档。Google 提出了这个与 Oracle 相关的有用的 stackoverflow问题。

该答案中的注意事项是否适用于 data.tables?也许除了那些与 UPDATE、INSERT 或 DELETE 类型语句有关的语句之外?我猜我们的data.tables对象不会真正以这种方式使用。

我试图通过使用文档和示例来了解这些东西,但我还没有看到任何关于密钥选择的讨论。

PS:感谢@crayola 首先将我指向包裹data.table

0 投票
2 回答
8434 浏览

performance - data.frame 方法的最有效列表?

刚刚与同事就此进行了交谈,我们认为值得看看 SO 土地上的人们怎么说。假设我有一个包含 N 个元素的列表,其中每个元素都是长度为 X 的向量。现在假设我想将其转换为 data.frame。与 R 中的大多数东西一样,有多种方法可以给众所周知的猫剥皮,例如as.dataframe,使用 plyr 包、do.call与组合cbind、预先分配 DF 并填充它等等。

提出的问题是当 N 或 X(在我们的例子中是 X)变得非常大时会发生什么。当效率(特别是在记忆方面)至关重要时,是否有一种猫剥皮方法特别优越?

0 投票
6 回答
7335 浏览

r - 为每个组设置前 n 行的数据框,并按变量排序

我想为 n 行子集一个数据框,这些行按一个变量分组,并按另一个变量降序排序。举个例子就清楚了:

我想为每个性别获取 2 行,这些行按年龄降序排列。所需的输出是:

我在这里寻找 order、sort 和其他解决方案,但找不到适合此问题的解决方案。我感谢您的帮助。

0 投票
2 回答
260 浏览

r - 如何避免打印包的作者信息?

可能重复:
库/包开发 - 加载时的消息

我想使用 Rapache 设置一个 Web 界面;但是,底层 R 代码使用显示作者快速消息的包。例如,对于data.table

有没有办法避免这种情况?我试过suppressMessages()了,和quietly选项library(),但无济于事。

谢谢

0 投票
2 回答
4507 浏览

mysql - 最快的子集化方法 - data.table vs. MySQL

我是 R 用户,我经常发现我需要编写需要对大型数据集(数百万行)进行子集化的函数。当我将这些函数应用于大量观察时,如果我不小心如何实现它,它会变得非常耗时。

为此,我有时会使用 data.table 包,它提供的速度比使用数据帧的子集快得多。最近开始试验RMySQL之类的包,将一些表推送到mysql,并使用该包运行sql查询并返回结果。

我发现混合的性能改进。对于较小的数据集(数百万),似乎将数据加载到 data.table 并设置正确的键有助于更快的子集。对于较大的数据集(10 到 100 百万),向 mysql 发送查询似乎移动得更快。

想知道是否有人知道哪种技术应该更快地返回简单的子集或聚合查询,以及这是否应该取决于数据的大小?我知道在 data.table 中设置键有点类似于创建索引,但除此之外我没有更多的直觉。

0 投票
4 回答
27957 浏览

r - 重塑 data.table 的正确/最快方法

我在 R 中有一个数据表

我可以通过 data.table 中的组轻松地对变量 v 求和:

但是,我希望将组 (y) 作为列,而不是行。我可以使用reshape

聚合后是否有更有效的方法来重塑数据?有没有办法使用 data.table 操作将这些操作组合成一个步骤?

0 投票
1 回答
9067 浏览

r - 将日期与 data.table 包一起使用

我最近发现了 data.table 包,现在想知道是否应该替换我的一些 plyr 代码。总而言之,我真的很喜欢 plyr,我基本上实现了我想要的一切。但是,我的代码运行了一段时间,加快速度的前景足以让我运行一些测试。这些测试很快就结束了,这就是原因。

我经常用 plyr 做的是按包含日期的列拆分我的数据并进行一些计算:

但是,在 data.table 中使用具有日期格式的列似乎不起作用:

如果我正确理解了这个包,我只有在使用 setkey() 时才能得到显着的加速。另外,我认为在日期和数字之间不断转换并不是一个好的编码。那么我是否遗漏了一些东西,或者没有简单的方法可以通过 data.table 实现这一点?

0 投票
1 回答
16694 浏览

r - 何时应在 data.table 中使用 := 运算符?

data.table对象现在有一个 := 运算符。是什么让这个运算符与所有其他赋值运算符不同?另外,它的用途是什么,它的速度有多快,什么时候应该避免?

0 投票
2 回答
5663 浏览

r - 为什么定义 data.table := 而不是重载 <-?

data.table 引入了 := 运算符。为什么不超载<-?