logo

Rで条件付きでデータをフィルタリングする方法 📂R

Rで条件付きでデータをフィルタリングする方法

概要

Rは主に統計学で使われるためか、必要なデータを選んで編集する機能は他の追従を許さない。このようなデータのハンドリングに慣れることは少し難しいが、完璧にマスターすれば他の言語がとても不便に感じられるだろう。

実際、これらのコツは読むだけではあまり役に立たない。(実際の正確性を追求すると、説明も簡潔にならざるを得ない。) 多くのデータを扱い、様々なコードを書いているうちに自然と習熟してくるが、それを避けているとスキルは向上しない。まだRを学んでいる段階なら、触れる必要のないデータも多く扱って直接実践することをお勧めする。

20180814\_151151.png

上のように$10$から$1$まで減少する配列があるとするとき、論理演算子を使って真/偽の配列を得ることができる。最初のは$5$以下の数字を選んで、二番目は偶数だけ選んだものだ。

このような論理配列を利用すると、非常にシンプルにデータを選ぶことができる。

スライシング

20180814\_151201.png

スライシングするとき、同じ長さの論理配列を入れるだけで、真は残し、偽は捨てる配列を返す。例において、前にあった数字が切り取られたのを確認できる。

which() 関数

20180814\_151210.png

which()関数は論理配列を受け取り、インデックスの配列に返す。例において、偶数に該当するインデックスだけが残ったのを確認できる。

これを利用して再度スライシングすると、望むデータを得ることができる。

コード

x<-10:1
 
x<=5
x%%2==0
 
x[x<=5]
which(x%%2==0)