R_ftableの属性 のバックアップ(No.1) - アールメカブ

アールメカブ


R_ftableの属性 のバックアップ(No.1)


Rの備忘録

ftable は,一部の関数(例えばMASSライブラリの対応分析,すなわちコレスポンデンス分析用の関数 corresp() )の入力にならない.そこで,強引に変換したが,もっとスマートな方法があるのではないか?

# フラットな表形式に変換

dat.t1 <-ftable(xtabs(cbind(Q1A1, Q2A1, Q3A1, Q4A1) ~

            E1W2 + factor(dat$Age) + Sex, data = dat))
# 構造を見るとクラスは ftable クラスなので
# このままではcorrespのインプットには使えない.
str(dat.t1$Age)

# そこでクラス属性を「行列」に替え
class(dat.t1) <- "matrix"
# 行や列のカテゴリをリセットする
attr(dat.t1, "row.vars") <- NULL
attr(dat.t1, "col.vars") <- NULL
dat.t1
# 行と列に名前をつけて
dimnames(dat.t1) <- list(c("E10M", "E10F", "E20M", "E20F",  "W10M",
    "W10F", "W20M", "W20F"), c("Q1A1", "Q2A1", "Q3A1", "Q4A1"))

## コレスポンデンス分析を実行
library(MASS)
dat.corr <- corresp(dat.t1, nf = min(nrow(dat.mat), ncol(dat.mat)))
biplot(dat.corr)
dev.copy2eps(file = "nihongo.eps")