Rマトリックスの1列(最初の列など)で重複した行を削除しようとしています。行列から1列ずつ一意のセットを抽出するにはどうすればよいですか?私は使用しました
x_1 <- x[unique(x[,1]),]
サイズは正しいですが、すべての値はNA
です。代わりに、私は試しました
x_1 <- x[-duplicated(x[,1]),]
しかし、寸法は正しくありませんでした。
Rでサブセット化がどのように機能するかについて混乱していると思います。unique(x[,1])
は最初の列に一意の値のセットを返します。次に、これらの値を使用してsubsetを実行しようとすると、Rはマトリックスのrowsを参照していると見なします。したがって、値がマトリックスに存在しない行を参照しているため、NAが発生する可能性があります。
他の試みは、duplicated
がインデックスのベクトルではなくbooleanベクトルを返すという事実に反しています。したがって、その前にマイナス記号を付けると、0と-1のベクトルに変換されます。これも、Rが行を参照しようとしていると解釈します。
'-'を '!'に置き換えてみてくださいブール否定演算子であるduplicated
の前。このようなもの:
m <- matrix(runif(100),10,10)
m[c(2,5,9),1] <- 1
m[!duplicated(m[,1]),]
一意の行のインデックスが必要なため、試したとおりにduplicated
を使用します。問題は、-
の代わりに!
を使用していたため、次のことを試してください。
x[!duplicated(x[,1]),]