スキップしてメイン コンテンツに移動

投稿

2月, 2010の投稿を表示しています

Hello world!

ブログの引越し準備を検討中。試しに Amazon EC2 に Wordpress をインストールしてみている。 テーマいじったり、WP LaTeX plugin とか、SyntaxHighlighter を入れたり。 [latex]e^{\i \pi} + 1 = 0[/latex] or $latex e^{\i \pi} + 1 = 0$ syntax.

Rapache (mod_r) を使って R で CGI を書くよ。テンプレートエンジンBrew編

前回は寧n、いえ、なんでもないです、前回のコードでは、cat() を使ってがんばってHTMLタグを出力していました。これは気持ち悪いです。RのコードとHTMLのコードを分けておかないと、どちらかに変更があった場合に、お互いの影響に配慮しながら修正をしなければならなくなります。これは面倒ですね。 こんなときは、テンプレートエンジンを使って、HTMLを作る部分とRのコードをなるべく分けるのが良いですね。R にも Ruby でいうところの erb のようなテンプレートエンジンがあります。今回は、 brew というテンプレートフレームワークを使います。 brewのインストールと設定 まず brew をインストールします sudo R install.pakcages("brew") q() 次に apache の設定をします。 sudo mkdir /var/www/brew sudo jed /etc/apache2/sites-available/default RHandler に brew を設定します。 [html] # brew <Directory /var/www/brew> #SetHandler r-handler SetHandler r-script RHandler brew::brew </Directory> [/html] brew で実装し仕直す 前回のコードを brew を使って書き直してみます。まずメインのコードです。 cd /var/www/brew sudo jed index.r ほぼHTMLですね。プロット部分を別なファイル hist.r に追い出しています。brew() でこれを読み込みます。 [html] <% setContentType('text/html') %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quo

Rapacheを使ってRでCGI を書くよ。グラフ画像出力編

前回のつづきです。前回は rapache の設定と簡単なCGIを作ってみました。今度は画像を出力して表示する CGI を作ります。内容は、乱数を適当に作ってヒストグラムを作画するCGIです。画像はランダムなファイル名で保存します。 [html] # Functions header <- function(contenttype) { setContentType(contenttype) } html.head <- function(content) { cat("<head>\n") cat(content) cat("</head>\n") } html.body <- function(content) { cat("<body>\n") cat(content) cat("</body></html>\n") } randomFileName <- function(prefix, postfix) { filename <- paste( prefix,

Rapache (mod_r) を使って R で CGI を書くよ。グラフ画像出力編

前回のつづきです。前回は rapache の設定と簡単なCGIを作ってみました。今度は画像を出力して表示する CGI を作ります。内容は、乱数を適当に作ってヒストグラムを作画するCGIです。画像はランダムなファイル名で保存します。 <<< # Functions header <- function(contenttype) { setContentType(contenttype) } html.head <- function(content) { cat(" \n") cat(content) cat(" \n") } html.body <- function(content) { cat(" \n") cat(content) cat(" \n") } randomFileName <- function(prefix, postfix) { filename <- paste( prefix, sprintf("%08d", as.integer(runif(1, 0, 10^7))), postfix, sep="" ) return(filename) } # Main image_dir <- "/var/www/images" filename <- randomFileName("hist_", ".png") filepath <- paste(image_dir, filename, sep="/") data <- rnorm(1000) # output html header("text/html") html.head(" Test ") png(filepath) hist(data) dev.off() html.body( paste( ' ', sep="" ) ) >>> リロードすると画像が変わるのがわかると思います。次回はもっと役に立つものを作ってみます。

! brewのインストールと設定

前回は寧n、いえ、なんでもないです、前回のコードでは、cat() を使ってがんばってHTMLタグを出力していました。これは気持ち悪いです。RのコードとHTMLのコードを分けておかないと、どちらかに変更があった場合に、お互いの影響に配慮しながら修正をしなければならなくなります。これは面倒ですね。 こんなときは、テンプレートエンジンを使って、HTMLを作る部分とRのコードをなるべく分けるのが良いですね。R にも Ruby でいうところの erb のようなテンプレートエンジンがあります。今回は、[[brew|http://cran.r-project.org/web/packages/brew/index.html]] というテンプレートフレームワークを使います。 まず brew をインストールします <<< sudo R install.pakcages("brew") q() >>> 次に apache の設定をします。 <<< sudo mkdir /var/www/brew sudo jed /etc/apache2/sites-available/default >>> RHandler に brew を設定します。 <<< # brew #SetHandler r-handler SetHandler r-script RHandler brew::brew >>> 前回のコードを brew を使って書き直してみます。まずメインのコードです。 <<< cd /var/www/brew sudo jed index.r >>> ほぼHTMLですね。プロット部分を別なファイル hist.r に追い出しています。brew() でこれを読み込みます。 <<< <% setContentType('text/html') %> ; Test <% brew('/var/www/brew/hist.r') %> >>> プロットを描画するコード hist.r は以下の通り。ほぼ R のコードですね。こ

Rapache (mod_r) を使って R で CGI を書くよ。Hello, World編

みなさん、こんばとらー。仕事で遺伝子発現データベースを作っているのですが、表示するグラフが Pixiv が保有する全イラスト数である490万枚 (2009/06発表) を越えてしまいました、やりました!(なにが? 所内の内部向けなので、PVが数百ですがw むこうは2億PV。 画像を吐くために Sun Grid Engine で PC クラスタをぶんまわしたりしています、頭わるいですね。数値データをグラフにするだけなので、WWWサーバで on the fly でグラフを描画すべきなのですが、サーバが Celeron, メモリ 800MB というという有様だったので躊躇していました。今回は新しいサーバに引っ越したので、R で on the fly 描画にトライしたいと思います。 まずは mod_R, いわゆる rapache というまぎらわしい名前のパッケージをセットアップし動作するところまでやってみましょう。環境は Ubuntu 9.10 です。 rapache のインストール まず、R を apt の source list に入れる。これで apt で最新の R を入れ放題。 deb http://cran.r-project.org/bin/linux/ubuntu intrepid/ 次に rapache と関連パッケージを入れます。 apt-get install r-base-dev apache2-mpm-prefork apache2-prefork-dev wget http://biostat.mc.vanderbilt.edu/rapache/files/rapache-latest.tar.gz rapachedir=`tar tzf rapache-latest.tar.gz | head -1` tar xzvf rapache-latest.tar.gz cd $rapachedir ./configure make sudo make install rapacheの設定 それでは Apache の設定をしましょう。最近は Ruby on Rails を使うので Apache の設定はひさしぶりです。 sudo emacs -nw /etc/apache2/mods-available/R.load [html]

!RでCGIを書いてみる

みなさん、こんばとらー。仕事で遺伝子発現データベースを作っているのですが、表示するグラフが Pixiv が保有する全イラスト数である490万枚 (2009/06発表) を越えてしまいました、やりました!(なにが? 所内の内部向けなので、PVが数百ですがw むこうは2億PV。 画像を吐くために Sun Grid Engine で PC クラスタをぶんまわしたりしています、頭わるいですね。数値データをグラフにするだけなので、WWWサーバで on the fly でグラフを描画すべきなのですが、サーバが Celeron, メモリ 800MB というという有様だったので躊躇していました。今回は新しいサーバに引っ越したので、R で on the fly 描画にトライしたいと思います。 まずは mod_R, いわゆる [[rapache|http://biostat.mc.vanderbilt.edu/rapache/]] というまぎらわしい名前のパッケージをセットアップし動作するところまでやってみましょう。環境は Ubuntu 9.10 です。 まず、R を apt の source list に入れる。これで apt で最新の R を入れ放題。 deb http://cran.r-project.org/bin/linux/ubuntu intrepid/ 次に rapache と関連パッケージを入れます。 apt-get install r-base-dev apache2-mpm-prefork apache2-prefork-dev wget http://biostat.mc.vanderbilt.edu/rapache/files/rapache-latest.tar.gz rapachedir=`tar tzf rapache-latest.tar.gz | head -1` tar xzvf rapache-latest.tar.gz cd $rapachedir ./configure make sudo make install それでは Apache の設定をしましょう。最近は Ruby on Rails を使うので Apache の設定はひさしぶりです。 sudo emacs -nw /etc/apache2/mods-available/R.l