【发布时间】:2021-07-08 15:11:22
【问题描述】:
我想重新创建这篇文章中演示的提取排序唯一值的最快方法的示例:What is the fastest way to get a vector of sorted unique values from a data.table?
test_df <-
data.frame(
company = c(1, 1, 2, 2, 3)
)
unique_values = df[,logical(1), keyby = company]$company
但我不断收到错误:
[.data.frame(df, , logical(1), keyby = company) 中的错误:未使用 论点(keyby = 公司)
编辑。请注意,我的问题的重点是让这个特定的方法起作用。其他实现目标的方法建议,请关注我参考的帖子。
【问题讨论】:
-
制作
df <- data.table::as.data.table(test_df) -
如果您不需要对它们进行排序:
unique(test_df$company)或者在 base 中的排序仍然不会那么慢:sort(unique(test_df$company)) -
@GKi
unique(test_df$company)在大 df 上明显变慢。这就是为什么我想让这个例子工作。 -
这可能是多核/线程的情况。如果您只使用一个核心或总结每个线程的时间,应该不会有太大差异。
-
您的示例不起作用,因为您创建了一个
data.frame并希望使用data.table的方法。所以在我的第一条评论中添加这一行来转换它或直接创建一个data.table。
标签: r distinct distinct-values