目的 チャーノフの顔グラフで使用するデータを調整する 使用法 face.data(d, pos=1:18) 引数 d データ行列 pos データ行列の変数を,チャーノフの顔グラフを描くために必要な 18 個のパラメータと対応づける情報 各要素は,下のデータ行列の何列目が対応するかを表す。同じ変数が重複してもよい。 i 番目の要素は,第 i パラメータに割り当てる変数の番号とする。変数を割り当てないパラメータには 0 を指定しておく。 ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/face_data.R", encoding="euc-jp") # チャーノフの顔グラフで使用するデータを調整する face.data <- function( d, # データ行列 pos=1:18) # 18 個のパーツに対応させるデータ行列の列番号(変数) { lo <- c(rep(0.2, 5), 0.1, 0.2, -5, 0.2, 0.1, 0.1, 0.3, 0.1, 0.3, rep(0.1, 4)) hi <- c(0.8, 0.8, 1, 0.8, 0.8, 0.4, 0.8, 5, 0.8, 0.7, 0.9, 0.7, rep(0.9, 4), 1, 0.9) fx <- c(0.5, 0.5, 1, 0.5, 0.5, 0.2, 0.5, 0, 0.5, 0.4, rep(0.5, 3), 0.6, 0.5, 0.5, 1, 0.5) n <- nrow(d) # ケース数 min.d <- apply(d, 2, min) max.d <- apply(d, 2, max) x <- matrix(0, n, 18) for (i in 1:18) { k <- pos[i] if (k > 0) { min.dk <- min.d[k] max.dk <- max.d[k] if (min.dk == max.dk) { # 全部が同じ値を持つようなとき, x[,i] <- fx[i] # 平均的なパラメータ } else { x[,i] <- (d[,k]-min.dk)/(max.dk-min.dk)*(hi[i]-lo[i])+lo[i] } } } return(x) } 使用例 > nv <- 10 # 10 変数データとする > d <- matrix(rnorm(12*nv), ncol=nv) # ここではデータを作成して以下の説明をする # 以下の例は,1番目の変数をパラメータ1に,2番目の変数をパラメータ2に,パラメータ3には変数は割り当てない,パラメータ4には変数3を,パラメータ5と6には変数6を割り当てる等を指示している。 > pos <- c(1, 2, 0, 3, 6, 6, 8, 7, 3, 9, 10, 0, 0, 4, 0, 0, 0, 0) > x <- face.data(d, pos) > old <- par(mfrow=c(4, 3)) > for(i in 1:12) { + face.plot(x[i,]) + } > par(old) 解説ページ 脇本和昌,垂水共之,田中豊編「パソコン統計解析ハンドブック I 基礎統計編」共立出版株式会社株式会社