table()
や
xtab
は集計に便利な関数だけど,
複雑な場合には ftable()
や stat.table()
in library(Epi)
を使う
y ~ x1 + x2
みたいな記法は Wilkinson-Rogers formulas
とよばれる (もともとの WR は y = x1 + x2
a:(b + c) = a:b + a:c
transform()
ordered
型が等間隔な選点直交多項式となってるのは歴史的理由?
drop = FALSE
を指定 (第 3 要素指定で!)
class()
と typeof()
を同一視していたけど,
これはまちがい: R には型とクラスの両方ある
env$object
だけでなく
env[["name"]]
でもある環境内のオブジェクトにアクセスできる,
と質問してみてわかった
apply()
や
tapply()
が好きだけど,
with()
や by()
のほうが記法的にはすっきりしてる場合もある
……
f <- function(xx)
は f(x = 1)
と呼べてしまう!
(危険なだけで利点がないような)
deparse(substitute(式))
str()
で double
型が
num
となるのは歴史的理由
library(dichromat)
(RGM)
で調べられる
(bluscale()
といった関数も含まれる)
hexbin()
(これは CRAN ではなく Bioconductor に含まれる)
を使う: 六角形の desnity plot に変換される
png()
, pdf()
その他いくつかに限定される)
library(ggplot2)
の紹介:
library(lattice)
の対抗馬,
つまりもうひとつの
library(grid)
世界の高水準作図関数セット
library(ggplot2)
の独特な記法:
time <- ggplot(data, aes(x = Date, y = Ozone)) print(time + geom_point() + geom_smooth())…… といったかんじで
+
演算子で重ね描き・
グループごとの分割などを指定する
library(ggplot2)
は Lee Wilkinson の本 ``The Grammar of Graphics''
(グラフの分類学の本だそーで)
にもとづくもので,
Hadley Wickham が実装している
library(ggplot2)
で作れる図って
library(lattice)
(あるいは coplot()
とか)
でも作れるのでは?
とすると
library(ggplot2)
の advantage は?
……
と質問してみたら,
まあそのあたりその二つを比較して,
こっちが優れてるとか判断するのは簡単ではないけど,
まあそれぞれに使っていくうちにユーザーが判断していくしかないんでは,
といった内容の回答でした
prompt()
や promptPackage()
などなどといった関数でスケルトンを生成できる
R CMD check MyPackage
とするとありがちなまちがいなどをチェックしてくれる
export()
,
import()
で package 内
関数が「外」から見える・見えないの設定
.C()
とかは単純だけど
.Call()
なんかを使ったほうがいいよ,
とのご教示
#include <Rinternals.h>
すると S 言語オブジェクト一般をあつかう型
SEXP
が使えるようになる
LENGTH()
,
pointer をとる INTGER()
& REAL()
,
要素をとりだす VECTOR_ELT()
,
その他文字列関連あれこれ,
「なんでも vector」
な R SEXP をスカラー化する関数,
C 言語の世界で R オブジェクトを生成する
allocVector()
& mkString()
,
メモリ管理 (ガベジコレクション対策)
PROTECT()
& UNPROTECT()
その他あれこれ,
さらには R クラスの attributes
を操作する関数あれこれ,
……
#include <Rdefines.h>
を使うと
S4 クラスを C 言語内で生成したり操作できる
pairlist()
で定義できる)
……
これの使いみちがいまいちよくわからなかったんだけど
(あえて言えば name つき vector の代替物?),
何やら自分で parser & evaluator 利用する場合に関係ありそう
……
R -d gdb foo.R
でいいよ,
とのこと
……
これは便利だ!
(swig 的だ
……
ぎょーむ日誌 2006-02-24)