2011-07-26 14 views
18

Rの行列の重複行を1列(例えば1列目)で削除しようとしています マトリックス? 私はx_1 <- x[unique(x[,1]),]を使用しましたが、サイズは正しいですが、すべての値はNAです。 だから。代わりにx_1 <- x[-duplicated(x[,1]),]を使用しようとしました。サイズは正しくありません。行列の列で重複した行を削除する方法R

は、私はあなたがサブセットは、最初の列に一意の値のセットを返しますR. unique(x[,1])でどのように機能するかについて混乱だと思う

答えて

23

、事前にどうもありがとうございます。それらの値を使ってサブセットを試してみると、Rはの行を参照していると思います。値が行列に存在しない行を参照するため、NAsを取得する可能性が高くなります。

他の試みは、duplicatedブール型ベクトルを返し、インデックスのベクトルではないという事実に反して実行されます。したがって、マイナス記号を前に置くと、0と-1のベクトルに変換されます。これは、Rは、行を参照しようと解釈します。

' - 'を '!'に置き換えてみてください。ブール値の否定演算子であるduplicatedの前にあります。

m <- matrix(runif(100),10,10) 
m[c(2,5,9),1] <- 1 
m[!duplicated(m[,1]),] 
+0

感謝を! – verda

+0

それは私のために働いた!ありがとう!! –

13

あなたは一意の行のindecesを必要として、あなたがしようとしたとしてduplicatedを使用します。このような何か。問題ではなく!-を使用していたので試してみてください。詳細な回答のため

x[!duplicated(x[,1]),] 
+0

おかげで完璧です! – verda

関連する問題