2017-09-24 4 views
1

これはおそらく非常に基本的ですが、特定の値の色付き点を行列 "m"のプロットに追加しようとしています。私は同じ行列からポイントを追加する必要がありますが、の範囲に169から179の範囲の値を含む行については、どのようなコードを使用できますか?私は試しました:マトリックス内の特定の行のみをプロットするR

p <- which(m[,2]==169:179 
## and 
points (p, col="blue") 

それは動作しません。これらのコードを適切に書いて、これらの座標をグラフ上に青色で表示するにはどうすればよいですか?感謝! ありがとう!

答えて

1

あなたは数があなたの2つの値の間にあるかどうかをテスト機能を定義しようとすることができます:

inbetween = function(x) 
{ 
    return (x >= 169 & x <= 179) 
} 

そしてメートルの各値にそれを呼び出すと、[2] sapply機能付: ind = sapply(m[,2], inbetween) これは、指定した値が範囲内にあるかどうかに応じて、真または偽のベクトルを返します。 次に、p = m[ind,]とすると、選択したインデックスでmの行が表示されます。

+1

なぜ 'm [、2] <= 179&m [、2]> = 169なのでしょうか。 Rは関数呼び出しではあまり良くありません – jenesaisquoi

+0

ああ、本当に簡単です! – ZiGaelle

1

データの例を共有できればいいです。一般に、マトリックスに対立するデータフレームからデータをプロットする方が理にかなっています。あらかじめインストールされたmtcarsデータセットを使用して、ソリューションを示すことができます。

ましょう最初のデータセットで利用可能なデータを見て:

summary(mtcars) 

次に、我々は我々が表示するデータをフィルタリングすることができます。この場合、15と20の間の値に対して、mtcars$mpg(名前がmpgの列)をフィルタリングしています。これを簡単にするために、このフィルタリングされたデータフレームを新しいデータフレームとして割り当てます。

mtcars_filtered <- mtcars[mtcars$mpg >= 15 & mtcars$mpg <= 20 , ] 

最後に、データをプロットすることができます。この場合、mpgの列をxの値に、hpをyの値にします。 typeは、どのように表示するかを指定するために使用され("p"点)、colは色を指定するために使用されます(青の場合は"blue")。

plot(mtcars_filtered$mpg, mtcars_filtered$hp, type = 'p', col = 'blue') 

これが役に立ちます。

関連する問題