R 独特的不';不再使用键作为默认值

R 独特的不';不再使用键作为默认值,r,data.table,unique,R,Data.table,Unique,我主要在Mac中使用Rstudio。最近我不得不开始使用Windows。但是,我发现unique()并没有根据键在data.table中提供唯一的行。以下是一个例子: a=c(2,3,3,3,3,5,6,7) b=c("a","a","f","g","a","d","t","l") e=data.table(a,b) setkey(e, a) key(e) # this works fine unique(e) unique()仅删除整行(第5行)的重复项。完全相同的代码在我的mac上运行良

我主要在Mac中使用Rstudio。最近我不得不开始使用Windows。但是,我发现unique()并没有根据键在data.table中提供唯一的行。以下是一个例子:

a=c(2,3,3,3,3,5,6,7)
b=c("a","a","f","g","a","d","t","l")
e=data.table(a,b)
setkey(e, a)
key(e) # this works fine
unique(e) 

unique()仅删除整行(第5行)的重复项。完全相同的代码在我的mac上运行良好

这是因为两者的data.table版本不同。在Mac上,您有一个数据表,这是因为两者上的data.table版本不同。在Mac上,你的答案是肯定的。更改还使
by=key()
显式需要,以便稍后提醒代码读者这正在发生。以前,您必须知道,如果在上游添加了密钥,它将改变
unique的行为。现在应该更强大了。
unique(e, by = "a")
#    a b
# 1: 2 a
# 2: 3 a
# 3: 5 d
# 4: 6 t
# 5: 7 l