ぼやかないつもりのメモ(ブログ Ver)

つぶやきとメモの記録。更新はぼちぼち。

データの読み込み、操作

今日は、大学院生からデータを読み込んでもNAの存在でうまくsdが計算できないという質問が来た。前にも一度同じ事で悩んだ気がするので検索してみると、自分で以下のように書いていたのを見つけた。Rを使うときにNAの存在でデータがうまく扱えず、だんだんRから離れていく人が多いので、下の文章*1は忘れないようにしよう。

欠損値を含むデータで中央値を求める時はmedian(x[!is.na(x)])とする。簡単な解説だけしておくと、xのうち欠損値でないものだけを調べている。詳しく知りたければ?is.naとすると良い。!は「〜じゃないもの」の意味。

(追記)統計解析ソフトRのページによると、applyなどを使うときは、以下のようにしてna.rm = TRUEというオプションを付けると良いそうだ。

apply(データフレーム, 集計項目, 関数(meanなど), na.rm = TRUE)

(追記)林さんに、『na.rmはapplyのargumentではなくmedian,mean,sum等のものなので,median(x, na.rm=TRUE)でも大丈夫ですよ。逆に,argumentにna.rmのない関数は,applyに入れてもna.rmは使えません。』とコメントをいただいた。na.rmがapplyの引数ではないということなので、applyの中で用いる関数がna.rmに対応しているかどうかを使う前にチェックしておく方が良さそう。

*1:大事なところが見にくいのでちょっと強調を加えた。