S clone と言われる R です.S version 3 互換と言われていますが,じゃぁ S version 4 より劣っているのか? なんて素朴に疑問に思ったのですが…


What are the differences between R and S? の教えるところ

R FAQWhat are the differences between R and S? によれば,

  • S には old Snew SR という 3 種類の方言(エンジン)がある
  • 相異点は以下の 3 つに大別される
    • Lexical Scope
    • Models
    • Others

とのこと.

Lexical Scope

lexical scope とは関数内で使われる自由変数の値を定める際の規則です.関数が定義された時点での環境から値を求める規則を lexical scope とよびます. 対義語は dynamic scope で,これは関数が呼ばれた時点での環境から値を求めます. lexical scope を採用するメリットは R FAQWhat are the differences between R and S? に挙げられていますが,大雑把には「関数が簡単になる」こと,「バグが減る」ことと考えれば良いのではないでしょうか.

Models

  • Sではlm(y ~ x^3)が、Rでは lm(y ~ I(x^3))
  • glm family objects の名前が違う
  • na.actionのデフォルトはna.omit(Sでは違うそうです)
  • Rでは切片のないモデルを y~x-1 だけでなく、y~x+0とも表現できる。

Others

TF は予約語では ない
TF は普通はそれぞれ TRUEFALSE と解釈されるが, ユーザが T <- 0 のように書き換えることができる.(始めからTRUEを代入された変数にすぎない) これは二値データを扱う際に便利である.したがって,関数を書く際には(正式に) TRUEFALSE を使うことが望ましい.
乱数発生
Rはメルセンヌ・ツイスター、Sは?
データフレーム
Sではデータフレームは行列として扱われる。Rではデータフレームと行列は別物
NA
Rでは文字変数であれば、NAはmissing扱いにならない。 ::

S version 3 と S version 4 の違い

S version 3 と R の違い

S version 4 と R の違い

関連リンク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1720d)