私は主に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の場合は新しいバージョンがあります。どうか、「?unique」のドキュメントを読んでください。 "デフォルトではすべてのカラムが使用されていますが、これはdata.frameメソッドとの一貫性のために最近変更されました。バージョン<1.9.8ではデフォルトはkey(x)*"でした。次に、あなたのWindows上で 'unique(e、by =" a ")'を試してください。 –