当我尝试使用密钥中的因子聚合data.table时,我得到了一些奇怪的结果。我已将此问题简化为此示例。
#v1, v2 as character vectors
dt<-data.table(grp=c(1,1,2,2), v1=c("a","a","a","b"), v2=c("a","a","b","b"))
dt[,list(length(which(v1==v2))), by=list(grp,v2)]
grp v2 V1
1: 1 a 2
2: 2 b 1
#v1, v2 as factor vectors
dt<-data.table(grp=c(1,1,2,2), v1=as.factor(c("a","a","a","b")), v2=as.factor(c("a","a","b","b")))
dt[,list(length(which(v1==v2))), by=list(grp,v2)]
grp v2 V1
1: 1 a 0
2: 2 b 0
这是一个错误还是我错过了什么?上述两个陈述不应该给出相同的结果吗?感谢
编辑:我正在使用data.table版本1.9.2