2015年5月10日日曜日

Rで順列の生成

ins=function(v,o)sapply(length(v):0,append,x=v,value=o)
perm=function(n){
  if(n==1) as.matrix(1)
  else matrix( apply(perm(n-1),2,ins,o=n) , nrow=n )
}


> perm(3)
      [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    1    1    3    2    2    3
 [2,]    2    3    1    1    3    2
 [3,]    3    2    2    3    1    1


Rの勉強のために順列の生成に挑戦した。悪戦苦闘の末、上のようなコードを編み出した。
サンプルとして表示しているのは1・2・3からなるすべての順列で、各列が1つ1つの順列をあらわす行列である。

2015年4月9日木曜日

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

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

2015年1月1日木曜日

RStudio+Sweave+日本語

 あけましておめでとうございます。
 RStudioのSweaveで日本語が通るようにした。参考にしたのはteramonagiさんのブログ。
 使用しているTeXはTeXWorksをインストールしたときに一緒に入ったw32tex。

  1. ae.sty と Sweave.styをSweaveソース(.Rnwファイル)を置くところに置く。
  2. RStudioのSweaveのデフォルト設定ではPdfLaTeXとなっているのを、LuaLaTexに変更するために、RStudioのconsoleで、次を実行。
    Sys.setenv(RSTUDIO_PDFLATEX="C:\\w32tex\\bin\\lualatex.exe")
  3. RStudioのメインメニューから「File→New File→R Sweave」で新規作成したら、次の1行を追加。
    \usepackage{luatexja}



    2014年12月28日日曜日

    統計検定1級に合格した

     2014年11月30日統計検定1級を受験した。てっきり落ちたと思っていたのだが、どうも合格したらしい。WEB発表に私の受験番号があった。合格者数38名。さらにその上、成績優秀者らしい。Sが6名、Aが6名。私はAの方だ。
     数理統計の1番は条件付き確率であった。[1]の最初の問題は解けたが、次の問題がわからなかった。帰ってから考えるに、積分すればよいらしい。それがわかれば、[2]以降はどうということはない問題だった。ここで時間を使った。数理統計2は[1][2]は解けたが、[3]の独立の証明からできなかった。数理統計はこれ以上手を付けてない。統計応用は人文分野を選択した。もっとしっかりした分野を選択したかったが、それほど実力はないし、私の仕事柄試験の分析とか考えるとこの分野で妥協した。これは大方3問解けたと思う。もっとも最後の1問は途中で終了の合図があったために書きかけである。
     このようなざまであったので、当然落ちたものと思っていた。そういえば、30年以上前、大学を受験した時も1番のやさしいところができなくて、落ちたと思っていたら受かっていた。
     去年の11月ころから本格的に統計の勉強を始めた。直前のブログの2月1日に断片がある。このころは東京大学出版の「統計学入門」を勉強していた。そのあと、「自然科学の統計学」やホーエルの「入門数理統計学」などを相手に悪戦苦闘した1年間であった。

    2014年2月1日土曜日

    離散的な確率分布をする確率変数の定義に基づいた生成

    2項分布は高校でも扱うので、いくらかイメージを持っている。それ以外の超幾何分布やら何やら読んだだけで分かったつもりになっていたが、問題を解こうとすると理解できていないことに気づく。理解の助けになるだろうかと思い、Rで、定義に基づいて確率変数を生成してみた。

    2013年8月25日日曜日

    python

     しばらくほったらかしであったpythonを少しは使えるようにしたいと思い、「はじめてのPython3」をまじめに勉強しようと思い立った。章末問題をこつこつ解き、第5章まではひと通りやった。だいぶ復習になった。第6章のクラスに関する問題は1番までやった。勉強になった。ソースを読むということがいかに大切かわかった。
     第9章に、特定のホームページの画像ファイルをダウンロードするというサンプルがある。これを参考に、リンクのURLを渡り歩くプログラムを作ろうと考えた。この本ではurllibとreを使って、リンクや画像ファイル名を正規表現で切り出す。しかしなかなかリンクを取り出す正規表現は難しく、結局HTMLParserを使うこととした。ここに行きつくまでにも紆余曲折があった。Beautiful Soupがよいとかrequestsがよいという記事を何回も目にし、インストールも何回か試みたがうまくいかなかった。おかげでHTMLParserを調べざるを得なくなったのだが、これは良い勉強であった。
     HTMLParserはその名の通りhtmlファイルを読んで、タグを解析して、返すのだが、その返し方が秀逸である。ほう、こういうふうにやるのか、と感心しきりである。
     その方法とはこうである。まず、HTMLParserのサブクラスをつくる。サブクラスからHTMLParser.feed(data)でHTMLファイルを流し込んでやると、HTMLParserは、解析してタグに出会うとHTMLParserのメソッドhandle_starttag(tag,attrs)を呼び出すのである。この時、であったタグと付随する情報がtagとattrsで渡されるのである。しかし、HTMLParserのメソッドhandle_starttagはとくにどうという行動はしない。で、作ったサブクラスにおなじ handle_starttagというメソッドを定義する。すると、これが呼ばれる。なので、やりたいことは、ここで定義するのだ。
     HTMLParserのソースを眺めてみると、正規表現が数多く使われている。こりゃ自分じゃ作れないわけだと思った。
     Pyscripterの使い方もだいぶ学習した。前々から素晴らしいと思っていたが本当に素晴らしいことが分かった。
     なお、使っているのはPython Portable でPythonのバージョンは3.2.1.1である。Python自体では3.3が出ていて、結構な変更があり、日本語のドキュメントもしっかりしているので3.3に移行したいが、Portableではまだ3.3になっていないのが残念だ。
     

    2013年8月15日木曜日

    スロージョギング

    福岡大学の田中宏暁教授の提唱するスロージョギングの動画をYouTubeで見た。やってみた。ためしてがってんでも取り上げられたらしい。やり方は、
    1. 背筋を伸ばす
    2. やや前傾姿勢
    3. 足は押すだけ、蹴らない
    4. ニコニコおしゃべり
    5. きつかったら歩く
    • 1日30分(10分×3回でもよい)が目安。
    • 会話ができなくなる一歩手前までにする。
    • 膝が痛い人はジョギングしない。
    (hakuraido ブログより)

    行きはスロージョギング約30分、帰りはウォーキング約30分。
    2日やったが、太ももが痛い。きっと効果があるということだろう。
    行き帰りスロージョギングできるようにしたい。