我主要在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上,你有一個<1.9.8版本,而在Windows上你有一個更新的版本。請請閱讀「獨特」的文檔,例如「*默認情況下,所有列都在使用,最近爲了與data.frame方法保持一致而進行了更改。在版本<1.9.8中,默認爲key(x)*」。然後在Windows上嘗試'unique(e = by「a」)''。 –