最初の障害とハマリ所
- スカラーがない。長さ1のベクトルしかない。
- とにかくリテラルがない。ベクトルでさえリテラルで書けない。キツイ。
- ミュータブルなオブジェクトがない。S4, R5, R6か?
- 構造体的データがない。listで代用
- 行列の折り返し方向が逆(列優先)
- データフレームの追加削除が自由にできない。
- 関数への引数渡しが自由過ぎる。
- 特に「...」がひどい。
- 関数の引数がやたらに多い。
- テーブル的データのレコード(行)の取り出しが面倒くさい。
- 複合データの扱いが貧弱
- map関数(apply系)が使いにくい
- ネーミングに頼った組織化
- 大域関数の多用
- 簡易的な名前空間が存在しない。パッケージでは面倒過ぎる。
- クラスシステムが色々、どれも中途半端。
- ベクトル、リストのインデキシングが分かりにくい。
- インデックスが1始まり、n + 1 とするケースが多い。
- インデキシングのモデルがスライスの取り出し
- if文や&&を使うと、ベクトル化が壊れる、ifelse関数を使う
- 再帰的データ構造が苦手
- [], $, <- などが関数、これは便利なときもある。
- メタブログラミングがしにくい。do.callくらい。
- typeof(2), typeof(2L)