2016-06-13 20 views
2

私はduplicated関数をdata.tableオブジェクトに使用しています。同じであると思われる2つの値にはFALSEが返されます。極小の重複で重複しています

それらの詳細を見ると、小さな差(-1.867777e-14ですが、それ以外のゼロ値に近い値)があるようです。

私の必要に応じて、これはバグです。テーブルの値を変更することなく、どのように修正しますか?

+2

あなたの値を丸めることができます。 – mtoto

+0

ええ、それは私が考えていることです。ちょうどどのように正確に(私の列のすべてが数字ではなく、私がどれくらい正確になりたいかわからない)と思っています。しかし、それはうまくいくはずです。 –

+0

一部の列が文字であることを意味しますか?おそらく、文字列のファジーマッチングに基づいて重複が必要になることがあります。http://stackoverflow.com/questions/11535625 – zx8754

答えて

4

roundを試してみてください。duplicatedを使用してください。

> x<-c(10.258963,10.258962) 
> duplicated(x) 
[1] FALSE FALSE 
> duplicated(round(x,5)) 
[1] FALSE TRUE 
+0

ありがとうございます。数値ではない(したがって丸められない)いくつかの値について、数値と一緒に重複をチェックする必要がある場合は、どうすればよいでしょうか? –

+0

例については、この質問を参照してください:http://stackoverflow.com/questions/13742446/duplicates-in-multiple-columns –

+1

私は 'numeric_cols'と' non_numeric_cols'列名を持っているので、私は何かを使用する(dt [、non_numeric_cols、with = FALSE]、by = NULL)&duplicated(dt [、numeric_cols、with = FALSE]、by = NULL)、5) '? –

関連する問題