2015年4月9日木曜日

Rのデータセットのサンプルコードを集める

Rには多くのデータセットがあり、それらを用いたサンプルコードがある。たとえば、example(Titanic)で、データセットTitanicのサンプルコードが実行されて、モザイクプロットが表示される。
サンプルコードは大変参考になるので、そのコードのみを集めるコード。




dsn = ls("package:datasets")   #1.データセット名ベクトル
cmds = paste("example(",dsn,",give.lines=T)")   #2.コマンド列
o = character()  #結果を蓄積する変数を準備
for(cmd in cmds) o=c(o,eval(parse(text=cmd)))  #3.コード
o2 = o[-grep("^#|^$",o)]  #4.コメント・空行削除
write( o2 , "samples.R" )  #5.ファイルへの書き出し
 説明

  1. dsnはデータセット名からなるベクトル
  2. cmdsはexample( Titanic , give.lines=T) などの文字列からなるベクトル。example( Titanic , give.lines=T) は、コードを実行するのではなく、コードの文字列からなるベクトルを返す。
  3. eval(parse(text=cmd))は文字列cmdを実行する。o=c(o,a)でベクトルoにaを追加していく。
  4. grep("^#|^$",o)は、ベクトルoのうちで、先頭が#(^#)、または(|)、空行(^$)である添え字からなるベクトルとなるので、-を付けてその行を削除。
  5. 必要があればファイルへ書き出す。
各変数dsn、cmds、o、o2を見ていただければ何をやっているかわかる。参考までにo2のTitanic部分は次のようになった。
[574] "require(graphics)"                                                              
[575] "mosaicplot(Titanic, main = \"Survival on the Titanic\")"              
[576] "apply(Titanic, c(3, 4), sum)"                                                    
[577] "apply(Titanic, c(2, 4), sum)"                                                    

さて、コードを勉強しようか。

0 件のコメント: