2011年12月3日土曜日

R:& と &&の違い

最近ようやくちょっと R に慣れてきた感がある

& と &&の違い
どちらも論理積なんだけど、

& だとベクトルの要素それぞれに対して
&& だとベクトルの最初の要素に対して

の演算になるみたいです。

例)
> c(TRUE,FALSE,FALSE) & TRUE
[1]  TRUE FALSE FALSE
> c(TRUE,FALSE,FALSE) && TRUE
[1] TRUE
> c(FALSE,TRUE,FALSE) & TRUE
[1] FALSE  TRUE FALSE
> c(FALSE,TRUE,FALSE) && TRUE
[1] FALSE

&& を使わなきゃいけない場面って少ない気がするので、とりあえず & をつかっておけばオッケーだと思います。| と || についても同様。

その他一般原則
  • R はとにかくベクトル‐行列が基本
  • なので for 文はなるべく使わないほうが計算が速くなる
  • このことはちょうど、数学でベクトル‐行列の計算をするとき、成分をいちいち書き下すよりもベクトル‐行列表記のままの方がかんたんだったりすることと対応している
  • for 文を使わないで代わりに何を使うのかというと apply とか merge とか subset とかである
  • ベクトルについての操作は大抵専用の速くてかんたんな関数があるので、そっちを使う
  • あと、一度書いたコードを後から見なおすのはけっこう大変なので最初からていねいに書くといい

0 件のコメント:

コメントを投稿