R で階層的クラスター分析をする場合は,とりあえず生データの場合は,以下のように距離行列を求めます.
dist(sampledata) とするとユークリッド距離で,dist(sampledata)^2 となると平方ユークリッド距離が求まります.他の距離もあります.
この距離行列を用いて,階層的クラスター分析をする場合は,次のように入力します.距離と一緒に求めることもできます.
hres<-hclust(dist(sampledata[2:4])^2,"ward")
ちなみに最初の hres の部分は結果をこの変数に入れておく意味です.なくても大丈夫ですが,結果を見る際にこうしておくと楽かもしれません.また,上のデータの書き方をすると特定の変数のみ(2 列目から 4 列目のみ)を使って距離を求めることになります.
後ろの引数の "ward" は Ward 法の意味です.もちろん最短距離法,最大距離法,群平均法など有名どころは利用できます.
このあとに以下の方法をするといろいろと結果を得ることができます.
plot(hres):樹形図を表示できます.R のグラフはすべて画像として保存できます(メニューからまたは右クリックで可能).
cutree(hres,k):クラスター数を k としたときの各対象の所属グループ番号を表示.
2009/11/28
2009/11/17
データセットの列の統計量の求め方
データセット(R では言い方がいろいろあるのでこの言い方があっているのかは自信がありません)でデータを与えているなら,R Console 上で,データセット名でデータ内のそれぞれの列の統計量や [m] を使って特定の変数の統計量を求めることができます.
例えば sampledata とデータセットを定義したら,平均値を求める場合は,mean(sampledata) とすると各変数のそれぞれの変数を求めることができます.ただし名義尺度などの場合は求められないと NA が出力されます.また mean(sampledata[3]) とすると 3 列目のみの平均値が求められます.
例えば sampledata とデータセットを定義したら,平均値を求める場合は,mean(sampledata) とすると各変数のそれぞれの変数を求めることができます.ただし名義尺度などの場合は求められないと NA が出力されます.また mean(sampledata[3]) とすると 3 列目のみの平均値が求められます.
データの入力と編集 2
以前紹介した「データの入力と編集」が分かりづらかったので,もう少し具体的に紹介します.ここでは Windows での R 環境として紹介します.
参考までに.
- 調査・実験データを Excel に長方形データフォーマットで入力.変数名を 1 行目に入力しておくこと.
- Excel で「オフィスボタン」>「名前を付けて保存」>「その他の形式」を選択.ファイルの種類で「CSV(カンマ区切り)」を選択.「保存」をクリック.ファイル名は仮に "sampledata" とする.互換性のない機能が含まれることに関するメッセージがでるので,「はい」をクリック.Excel の画面を閉じる.保存のダイアログがでるので,「いいえ」をクリック.
- R を起動して,R Console で,「ファイル」>「ディレクトリの変更」を選択し,さっきのファイルの保存フォルダを選択.これで作業フォルダを選択することになる.
- R Console で「sampledata<-read.csv("sampleset.csv",header=T)」とすると一行目を変数名として取り込み,残りをデータとして R にデータセット名 "sampledata" として取り込める.ためしに "sampledata" と入力するとデータの内容を表示する.
- R Console で,sampledata や sampledata[m] の表現でデータ全体や m 列目の統計量を求めることが可能.例えば平均値を求める場合,mean(sampledata) とすると各列の平均値を出力し(名義尺度の変数の場合は NA とでる),mean(sampledata[3]) とすると 3 列目の平均値のみが表示される.
- 結果はテキストで R Console に出力されるので,必要に応じてコピーして他のソフトにペーストする.グラフの場合は,メニューからファイル保存も可能.
参考までに.
2009/03/09
R で関数を作る
R では,自作関数を用いて分析することも可能です.
プログラムといっても,すごく高度なものもできるようですが,とりあえず初歩の初歩として,関数の形を見ると次のようになります.
> xsum<-function(x,y){
+ z=x+y;
+ print(z);
+ }
> xsum(2,3)
[1] 5
>
詳しくはまた別の回に報告しますが,ようは「function」で宣言し,改行に「;」を使って,それぞれの文を書いていきます.また,どちらかというと手続き型ではなく,関数形で,戻り値があるという感じです.少しずつ覚えていきます.
とりあえず.
プログラムといっても,すごく高度なものもできるようですが,とりあえず初歩の初歩として,関数の形を見ると次のようになります.
> xsum<-function(x,y){
+ z=x+y;
+ print(z);
+ }
> xsum(2,3)
[1] 5
>
詳しくはまた別の回に報告しますが,ようは「function」で宣言し,改行に「;」を使って,それぞれの文を書いていきます.また,どちらかというと手続き型ではなく,関数形で,戻り値があるという感じです.少しずつ覚えていきます.
とりあえず.
2008/09/12
ファイルメニューのディレクトリ変更(Windows)
ファイルメニューの "ディレクトリの変更" で,作業フォルダを指定できる.これにより読む込むファイルや出力先をディレクトリパスを書かずにファイルを指定できる(デフォルトのフォルダを設定の意味)ができる.特にディレクトリパスに抵抗がなければ変更の必要はありません.ちなみに ".RData" 等のファイルの置き場所に関係するので,分からない場合は,触らない方がお勧めです.
データの入力と編集
データの入力の方法(他のソフトからのデータの受け渡し)もいろいろできます.
少ないデータであれば,c(データ) や matrix で入力もできますが,わりと大きめなデータであれば,Excel 等で入力することが楽です.Excel で入力してあとに,形式をカンマ区切り(CSV)形式でファイルにデータを保存します.R Console で,"sampledata<-read.csv("sampleset.csv",header=T)" とすると一行目を列名として取り込み,残りをデータとして R にデータセット名 "sampledata" として取り込めます.
すでに入力済みのデータ(ここではこのデータ名を『sampledata』とします)を編集する場合,"fix(sampledata)" ト入力すると「データエディタ」画面が表示され,表計算ソフトと同様にデータを編集することが可能です.データの編集が終わったら,右上の「×」ボタンをクリックしてデータエディタを閉じます.また"sampledataNew<-edit(sampledata)" と入力するとsampledata と別の名前のデータセット(ここでは sampledataNew)に編集後のデータをコピーできます.ちなみに編集するデータセットと同じ名前(ここでは sampledata)にすると上書きにデータセットのデータを変更することが可能で,fix と同じ使い方ができます.
データエディタが出ている間は R Console での作業ができないので注意してください.
少ないデータであれば,c(データ) や matrix で入力もできますが,わりと大きめなデータであれば,Excel 等で入力することが楽です.Excel で入力してあとに,形式をカンマ区切り(CSV)形式でファイルにデータを保存します.R Console で,"sampledata<-read.csv("sampleset.csv",header=T)" とすると一行目を列名として取り込み,残りをデータとして R にデータセット名 "sampledata" として取り込めます.
すでに入力済みのデータ(ここではこのデータ名を『sampledata』とします)を編集する場合,"fix(sampledata)" ト入力すると「データエディタ」画面が表示され,表計算ソフトと同様にデータを編集することが可能です.データの編集が終わったら,右上の「×」ボタンをクリックしてデータエディタを閉じます.また"sampledataNew<-edit(sampledata)" と入力するとsampledata と別の名前のデータセット(ここでは sampledataNew)に編集後のデータをコピーできます.ちなみに編集するデータセットと同じ名前(ここでは sampledata)にすると上書きにデータセットのデータを変更することが可能で,fix と同じ使い方ができます.
データエディタが出ている間は R Console での作業ができないので注意してください.
2008/09/08
R での統計グラフ

R でも他の統計ソフトと同様に様々な統計グラフを用いることができます.以下で紹介する以外にも表示する方法があるので参考までにしてください.
まずは,縦棒・横棒グラフ(barplot).height のデータを単に「barplot(height)」と入力したら図のようになります.引数に names.arg=c("a","b","c","d","e") などとを指定すると棒グラフのラベルが付きます.horiz=0 で縦棒,horiz=1 で横棒,beside は複数の属性の棒を立てるときに使うみたいです.行列でデータを渡し,beside を f にすると帯グラフになりそう(今度試してみます).xlab で x 軸のラベル,ylab で y 軸のラベル.axes で縦軸(または横軸)の表示の有無を設定できます.
他の図も随時紹介していきましょう.とりあえず主なグラフとして折れ線グラフ(matplot),円グラフ(pei),帯グラフ(barplot),散布図(plot),散布図行列(pairs),ヒストグラム(hist),箱ひげ図(boxplot)~data(condition),ドットチャート,また箱ひげ図と散布図の組み合わせた scatterplot もあります.
今回は時間がなかったので,紹介のみです.help で調べると英語のマニュアルが読めますので,オプション等は参考できます.
登録:
投稿 (Atom)