データの集約

ベクトルの集約

all(論理ベクトル ) 論理ベクトルが全て真のとき真を返す
any(論理ベクトル ) 論理ベクトルのいづれかが真のとき真を返す
length( x ) オブジェクト x の長さを返す

オブジェクトの集約/変形( 反復構文の排除のための関数 )

apply( 行列(配列), 次元番号(のベクトル), 適用関数, ... ) その"行列(配列)"を "次元番号"での添字組合せごとで部分抽出し、 抽出されたそれぞれに "適用関数" を適用する。 結果は、指定した次元のみが残り、残りの次元に関しては潰された 配列となる。"..."の対応する引数は適用関数へそのまま渡される。
sweep( 行列(配列), 次元番号(のベクトル), 統計量, 適用関数="-", ... ) その"行列(配列)"を "次元番号"での添字組合せごとで部分抽出し、 抽出されたそれぞれに "適用関数" で統計量を適用(掃き出し)する。
tapply( ベクトル, 類別オブジェクト(のリスト), 適用関数, ... ) その"ベクトル"を "類別オブジェクト"で(多重)分類し、 (多重)分類されたそれぞれに "適用関数" を適用する。 結果は、多重配列となる。 "..."の対応する引数は適用関数へそのまま渡される。
outer(X, Y, FUN="*", ...) 外積の一般化:X, Y の 要素のすべての組み合わせについて,FUN を適 用した配列。次元は c(dim(as.array(X)),dim(as.array(Y)))となる。 FUN は少なくとも 2 つの引数をもちは長さ 1 の値を返す 関数でなければならない.注:FUN="*"なら普通の外積 X %o% Y に等しい
by( データフレーム, 因子(のリスト), 適用関数, ... ) tapply のオブジェクト版。 その"データフレーム"を "因子(のリスト)"の水準(組合せ)ごとで部分抽出し、 抽出されたそれぞれに "適用関数" を適用する。
例: by(kyphosis, kyphosis$Kyphosis, summary): kyphosis$Kyphosisで層別した各階層ごとにデータ要約を作成する。
lapply( list, 適用関数, ... ) list の各要素それぞれに "適用関数" を適用したlistを返す。
split(v,g) ベクトル v を、対応するベクトル(類別オブジェクト)の値に従って区分して、 区分されたベクトルを要素とするリストにする (cf. この結果を sapply へ渡せる )。
sapply( list, 適用関数, ... ) lapply と同様に処理したのち、 各要素に適用した結果がすべてスカラならベクトル、結果が同じ長さなら行列 にする。それ以外なら listになる。
aggregate(x, by=リスト, FUN=適用関数, ...) オブジェクトxの要素を、by で指定した項目が等しいグループに分割し、 それぞれに FUN(分割したx,...) を実施し、配列などの形式にして返す。 by には、xと長さが等しいベクトルのリストを指定する。 "..."の対応する引数は適用関数へそのまま渡される。(総称関数)

特殊化することで、処理速度を向上させた次の関数群もある。 ( x は行列/配列/ベクトル/データフレームのいずれか。)

  colMeans(x,  na.rm=F, dims=1)
  colSums(x,   na.rm=F, dims=1)
  colVars(x,   na.rm=F, dims=1, unbiased=T, SumSquares=F)
  colStdevs(x, na.rm=F, dims=1, unbiased=T, SumSquares=F)
  rowMeans(x,  na.rm=F, dims=1)
  rowSums(x,   na.rm=F, dims=1)
  rowVars(x,   na.rm=F, dims=1, unbiased=T, SumSquares=F)
  rowStdevs(x, na.rm=F, dims=1, unbiased=T, SumSquares=F)
高速化については、 http://www.insightful.com/Hesterberg/articles/EfficientSplus.txt http://www.insightful.com/Hesterberg/bootstrapも参照のこと。

データを集約した統計量

max( 数値ベクトル ) 数値ベクトルのなかの最大値を返す
min( 数値ベクトル ) 数値ベクトルのなかの最小値を返す
range( 数値ベクトル ) 数値ベクトル x に対して、c(min(x),max(x))を返す
sort( ベクトル ) xを昇順(文字ベクトルなら辞書順)に整序した結果を返す
order( 数値ベクトル ) 数値ベクトルを整序したベクトル中の各要素が、 元のベクトルの何番目かを返す
たとえば、 x[order(x)] は sort(x) に等しい。
rank( 数値ベクトル ) 数値ベクトルの各要素のベクトル中での順位を返す。 つまり、rank(x)[i] は x[i] の順位となる。
rev( ベクトル ) xを逆順にしたベクトルを返す。 たとえば、 rev(sort(x)) は降順の整序結果。
sum( 数値ベクトル ) 数値ベクトルの総和を返す
cumsum( 数値ベクトル ) 数値ベクトルの先頭からi番目までの累積和を第i要素とするベクトルを返す
diff( 数値ベクトル ) 数値ベクトルの階差ベクトルを返す cumsum(c(x[1], diff(x)))は元のxに等しくなる。
prod( 数値ベクトル ) 数値ベクトルの総積を返す
mean( x ) x の算術平均を返す
median( x ) x の中央値を返す
unique( x ) x の反復を除いたもの
duplicated( x ) x 中の反復した要素であるかの論理ベクトル.
unique( x )は x[!duplicated(x)] に等しい
qunatile( x ) 標本確率点を返す
cumsum( 数値ベクトル ) 数値ベクトルの累積和を返す
var( x ) ベクトルに対して(不偏な)分散を求める。
sum((x-mean(x))^2)/(length(x)-1)に同じ
行列に対して(不偏な)共分散行列を求める。
(平均偏差平方和を自由度 (=サンプル数-1) で割る)
参考関数:cov.wt, cov.mve, mahalanobis
cor( x,y ) xとyの相関、相関行列を求める
(varの結果を両標準偏差で割る)
acf( x ) xの自己相関を求める

類別オブジェクトor因子変量の集約

cut 連続変量から類別オブジェクトを作成
例:cut(runif(100),(0:5)*0.2): [0,1]一様乱数を0.2刻みに類別した結果
category 離散変量から類別オブジェクトを作成
levels 類別/因子オブジェクトの水準
table 頻度の分割表を作成
crosstabs 同上(モデル式を与える)

多変量解析(引数についてはマニュアル参照)

lsfit 線形回帰最小二乗法
nnls.fit 回帰係数の非負制約付き線形回帰最小二乗法
glim 最尤法による一般化線形回帰モデルの推定
leaps 跳躍限定法(leaps and bounds)による最良部分回帰
avas Additivity and Variance Stabilization for Regression
ppreg Projection Pursuit Regression
ace Regression Model Linearization
princomp 主成分分析 (旧関数 prcomp)
factanal 因子分析モデルの推定
discr 正準判別分析
cancor 正準相関分析
cmdscale 古典的多次元尺度構成法
hclust 階層的クラスタ分析
mclust Model-based階層的クラスタ分析
mstree 多次元データの最短距離木あるいは, 一次元,二次元の配置を求める
mahalanobis ある点からのマハラノビスの距離

データフレームの関数(引数についてはマニュアル参照)

data.frame データフレームの作成
factor 因子変量の作成
ordered 順序因子変量の作成
interaction 複数の因子変量からそれらの交互作用因子データを作成する
bs 多項式補間のための基底を生成する
ns 自然3次補間のための基底を生成する

モデルformulaに対応した多変量解析(引数についてはマニュアル参照)

densityplot モデル式で指定した変量の経験分布の表示
dotplot モデル式で指定した変量の(条件付き)プロット
splom モデル式で指定した変量の多重散布図の表示 (pairsのモデル式版)
bwplot モデル式で指定した変量の箱髭図
wireframe モデル式で指定した変量の3次元ワーヤーフレーム図
lm 線形回帰モデルの推定
lmList データクラスタごとの線形回帰モデルの推定結果リスト作成
multicomp 線形回帰モデル結果のパラメータの区間推定
nls 非線型回帰モデルの推定
nlsList データクラスタごとの非線型回帰モデルの推定結果リスト作成
aov 分散分析モデルの推定
xyplot 条件付プロット
glm 一般化線形回帰モデルの推定
lowess 局所重み付き線形回帰モデルの推定
gam 一般化加法モデルの推定
tree 樹形回帰モデルの推定
survReg survival model を推定する。
coxph Cox proportional hazards regression modelを推定する。
lme 混合効果モデルを推定する。
varcomp y = Xa + Zb + e の分散成分などをMINQUE0などで推定する。
glmmPQL GLMM model with multivariate normal random effects, using Penalized Quasi-Likelihood.(MASS ライブラリ、MASS4) (cf. nlme() ) [logit modelも]

モデルの更新関数(引数についてはマニュアル参照)

update 推定されたモデルを変更点を指定して更新
step モデルの説明変数に関するモデル選択
drop1 モデルの説明変数を一つ選択して削除する
add1 モデルに説明変数を一つ選択して追加する
formula モデル式オブジェクトの作成

時系列データの集約

aggregate( 数値ベクトル,nf,fun) 時系列データをより短いnf周期に区分し、funによる集約値を求める。 cf. rts (時系列データの生成)
approx(x,y,xout) x 上で y が観測された時、xout上での値を線形(定数)補間する。
spline(x,y,n) x 上で y が観測された時、n点の値を3次スプライン近似する。
smooth.spline 3次のBスプライン近似
lowess(x,y) x 上で y が観測された時、局所重み付き最小二乗平滑化する。
ksmooth 局所重み付き平均平滑化(kernel smoother)