R data.table setkey by dplyr::group_by?

R data.table setkey by dplyr::group_by?,r,data.table,dplyr,R,Data.table,Dplyr,我正在同时使用data.table和dplyr。我最近注意到dplyr::group_by还可以设置data.table对象的键 # R version 3.1.0 library(data.table) # 1.9.2 library(dplyr) # 0.1.3 dt <- data.table(A=rep(c("a", "b"), times=c(2, 3)), B = rep(1, 5)) tables() # NAME NROW MB COLS KEY # [

我正在同时使用data.table和dplyr。我最近注意到dplyr::group_by还可以设置data.table对象的键

# R version 3.1.0    
library(data.table) # 1.9.2
library(dplyr) # 0.1.3

dt <- data.table(A=rep(c("a", "b"), times=c(2, 3)), B = rep(1, 5))
tables()
#      NAME NROW MB COLS KEY
# [1,] dt      5  1 A,B
# Total: 1MB

group_by(dt, A)
tables()
#      NAME NROW MB COLS KEY
# [1,] dt      5  1 A,B  A
# Total: 1MB
#R版本3.1.0
图书馆(数据表)#1.9.2
图书馆(dplyr)#0.1.3

dt请使您的示例独立且可复制,准确显示您使用的
语句以及您使用的软件包版本。如果不是最新版本,请使用最新版本重试。如果未加载dplyr,请在加载dplyr的情况下尝试删除dplyr::。你得到了什么?这似乎是一个合理的预期事件
group_by
将只执行
setkey
,这将在对象中创建一个hashkey。data.table语法与R语法有些“不同”,因此出现这种副作用似乎一点也不不不合理。谢谢@G.Grothendieck,我已经介绍了更多详细信息。我建议您使用CRAN的最新版本的dplyr尝试此操作,然后使用github的最新版本的dplyr再次尝试。我在github的提交1482页面上查看
dplyr
。但这并不是关键。也跟着评论走。根据那篇文章中的讨论,我猜哈德利最近做出了这种改变。
library(data.table)
dt <- data.table(A = rep(c("a", "b"), times=c(2, 3)),
                 B = rep(1, 5))
dplyr::group_by(dt, A)
# Source: local data table [5 x 2]
# Groups: A
#
# Error in if (is.na(rows) || rows > getOption("dplyr.print_max")) { :
#   missing value where TRUE/FALSE needed

tables()
#      NAME NROW MB COLS KEY
# [1,] dt      5  1 A,B  A
# Total: 1MB