2012年12月17日月曜日

R言語の関数_変数1つ版

環境

R(2.15.2)

 

勉強した奴のlog

目的関数
データの値を結合 c(a,b,c)
度数分布(表)の作成 table(a)
ヒストグラムを描く hist(a)
合計を求める sum(a)
データの個数を求める length(a)
平均を求める mean(a)
中央値を求める median(a)
平方根を求める sqrt(a)
不偏分散を求める var(a)
標準偏差を求める sd(a)
絶対値を求める abs(a)
最大値を求める max(a)
最小値を求める min(a)

 

以下 仕組み

不偏分散(var関数)

 

標本分散

 

標準偏差(sd関数)

2012年12月16日日曜日

MacでR言語をインストール&分散を求めるまで

環境

Mac OSX 10.7.5

Homebrew 0.9.3

 

GUIの方はyoutubeでわかりやすい動画がありました。

Rのインストール for Mac - smallwolf5's

 

以下はCUI(ターミナル)

自分が入れた時のバージョンは2.15.2(2012-10-26)

インストール

$ brew install gfortran
$ brew install R 

 

起動確認

$ R
R version 2.15.2 (2012-10-26) -- "Trick or Treat"
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0 
Platform: x86_64-apple-darwin11.4.2 (64-bit) 
以下略 

 

「>」の先に何かしらの命令(10 + 1等)を与えれば大抵答えてくれます。

for文やif文など制御文はある。

 

サンプルコード

実行方法

$ R
...(略)
> source("ファイル名") 

 

2012年12月13日木曜日

MacにJubatus0.3.4を色々できるようにビルド&インストールするまで

環境

Mac OSX 10.7.5

Homebrew 0.9.3

 

まぁbrewとかで入れてもいいんだろうけど、色々触り、いじりたいのでビルドからやる。

Brewで入れるなら下記のブログ様がわかりやすい。

JubatusをOS X Lionにインストールできた - Ayum Osanai's blog

今回Makefileやwscriptにある-O2オプションを-O0オプションにしていますが、個人的なことなので....

前準備

公式サイトを参考に

http://jubat.us/ja/build.html

必要なパッケージを揃える(今回はとりあえず全て突っ込む)

必須ではないパッケージがどういう風に使われるかどうかは下記のブログ様を見てください。

非公式Jubatusインストールガイド - kuenishi's blog

 

Homebrewで入れたもの

  • gcc(4.7.2)
  • libevent(2.0.20)
  • google-glog(0.3.2)
  • mecab(0.994)
  • msgpack(0.5.7)
  • re2(ver?)
  • zookeeper(3.4.5)
brew install 〇〇

でok

---補足1
gccをインストールしたとき、シンボリックリンクに注意

---補足2
brewではgoogle-glogではなく、glogとしてインストールする

---補足3
re2のインストールだけは--HEADオプションとmercurialが必要(brewでok)

 

Homebrewで入れなかったもの

  • ux-trie(0.1.0)
  • pficommon(1.3.1)
  • zookeeperのCクライアント(3.4.5)

 

 

  • ux-trie(0.1.0)のインストール

https://code.google.com/p/ux-trie/downloads/list

解凍とインストール

$ wget http://ux-trie.googlecode.com/files/ux-0.1.8.tar.bz2
$ tar -jxf ux-0.1.8.tar.bz2 && cd ux-0.1.8

ux-0.1.8/wscriptをいじる

#変更前
#ctx.env.CXXFLAGS += ['-O2', '-W', '-Wall', '-g']
#変更後
ctx.env.CXXFLAGS += ['-O2', '-W', '-Wall', '-g' ,'-I/usr/include/malloc'] 

-I/usr/include/mallocの追加をした

$ ./waf configure
$ ./waf buildgit clone https://github.com/pfi/pficommon.git

 

  • pficommon(1.3.1)のインストール

https://github.com/pfi/pficommon

$ git clone https://github.com/pfi/pficommon.git
$ cd pficommon
$ ./waf configure
$ ./waf build
$ ./waf install 

 

  • zookeeperのCクライアント(3.4.5)のインストール 

http://ftp.riken.jp/net/apache/zookeeper/

$ wget http://ftp.riken.jp/net/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
$ tar xvzf zookeeper-3.4.5.tar.gz
$ cd zookeeper-3.4.5/src/c
$ ./configure 
$ make
$ make install 

 

 

Jubatusのビルド&インストール

https://github.com/jubatus/jubatus

 

$ git clone https://github.com/jubatus/jubatus.git
$ cd jubatus
$ ./waf configure --enable-mecab --enable-ux --enable-zookeeper
$ ./waf build
$ ./waf install  

 

Jubatusの動作確認

 

$ jubaclassifier

ちゃんと動くとこまで確認済み

 

分散環境も公式サイトを参考にしてやったが、まだまだ不安定。(まだ最後までできたのは1回のみ...orz)

落ち着いたらlogを残す予定。 

 

 

その他気になったこと

上記の状態で

$ ./waf --checkall

にて

json_converterやmecab_splitterとやらでコケてる様子。

installできて動くけど

 

 

 

 

 

 

 

MacにHomebrewでgcc最新版(4.7)をいれるまで

環境

Mac OSX 10.7.5

 

brewでInstall

$ brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gcc.rb --enable-all-languages --use-llvm

長い。 

 

シンボリックリンクの変更

brewでインストールしただけでは、gccのシンボリックリンクは変わらない。

確認方法

$ ls -l /usr/bin |grep "gcc\|g++"

 

変更

$ sudo ln -sf /usr/local/bin/gcc-4.7 /usr/bin/gcc
$ sudo ln -sf /usr/local/bin/g++-4.7 /usr/bin/g++

 

gcc -v等で、確認可能。

 

2012年12月10日月曜日

TideSDKにてHelloWorldをするまで

入れたもの

TideSDK 1.3.1
TideSDK Developer(1.4.2)

自分の環境

Mac OS X 10.7.5

http://www.tidesdk.org/より
(1)TideSDK 1.3.1-beta-osx-x86-84.zip
(2)TideSDK-Developer-1.4.2-osx-x86-64.dmg
この2つのダウンロード
スクリーンショット 2012 12 10 3 23 01



手順1:TideSDK 1.3.1-beta-osx-x86-84をrename

TideSDK 1.3.1-beta-osx-x86-84.zipを解凍後、terminalにて
公式サイトのDocに以下のようにしろとのこと
~/Library/ApplicationSupport/TideSDK
つまり、
mv TideSDK1.3.1-beta-osx-x86-84 ~/Library/Application\ Support/TideSDK
という風にrename。
※自分の場合は、先に手順2をやったせいか、~/Library/Applications Support/TideSDKができていた。なので一度消して、mvの方を先にやったらうまくいった。

手順2:TideSDK Developer.appをアプリケーションフォルダに突っ込む

スクリーンショット 2012 12 10 3 36 14

手順3:TideSDK-HelloWorld-masterのダウンロード

https://github.com/TideSDK/TideSDK-HelloWorld
からgitでcloneするなり、zipでダウンロードするなりして解凍まで。

手順4:TideSDK Developer.appの起動

当然最初は何もない
スクリーンショット 2012 12 10 3 41 26

手順5:TideSDK-HelloWorld-masterのインポート

スクリーンショット 2012 12 10 3 47 12
スクリーンショット 2012 12 10 3 53 00

以下のような感じになる。
スクリーンショット 2012 12 10 3 56 45

手順5:アプリの起動確認

test & packageタブを選択
スクリーンショット 2012 12 10 4 00 31

左下にある Launch Appボタンをクリック
スクリーンショット 2012 12 10 4 01 32

Nice "Hello World"!!
スクリーンショット 2012 12 10 4 02 27

2012年6月21日木曜日

vim プラグインを管理する

ちょっと前まではVimにプラグインなどは入れない派だったけど、せっかくvimテクニックバイブル ~作業効率をカイゼンする150の技を買ったので、色々面白そうなのを入れてみる。

とりあえず、プラグインを管理するためのプラグインがあるらしい。
・vimball
・getscript.vim
・pathogen.vim
・rtputil.vim
などなどがあるらしいけど、調べてみると、Vundleというものが素敵らしい。

参考サイト様
2011年のVimプラグインの管理はVundleで

初めてプラグインを扱うので、どうやるのかも初心者(サーセンorz

とりあえず、コマンドラインで残しておく

環境
Mac OS X 10.7.4
Vim 7.3
Git が必要
READMEではgit clone で直接.vim/とあるが、dotfile(.vimrc等)をgitでやっている方はggってください。
今回はREADME通りにする。



>git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
>vi .vimrc


.vimrcに

filetype off

set rtp +=~/.vim/bundle/vundle/
call vundle#rc()
"必須
Bundle 'gmarik/vundle'
"---以下で管理
"githubにあるプラグイン

"www.vim.orgにあるプラグイン

"github以外のgitのリポジトリ

filetype plugin indent on


なんかREADMEに色々入ってるが、最低はこれだけで良い。

そして保存(:w)した後にvundleをインストールする。


:BundleInstall



ッターン
以上です。

使いたいプラグインがあったら、特にgithubに上がっているやつだと、.vimrcにURLを記述するだけでよし。
具体例
colorschemeのsolarizedを入れたい
URL:https://github.com/brantb/vim-colors-solarized.git


.vimrcにて

”githubにあるプラグイン
Bundle 'altercation/vim-colors-solarized'


で、保存ーー>BundleInstall

では削除したい時、
.vimrcから消す。

そして

:BundleClean


以上。

注意)
Bundle 'gmarik/vundle'
と同じ行にコメントを書くとエラーが起きるので、違う行に書くこと。
引数としてとってしまうらしい。

2012年3月5日月曜日

rvmで複数のバージョンのRubyとRailsを混在させるまで

Okinawa.rbに参加するべく、色々調べた。
[rvm]というもので、Rubyのバージョンを複数混在できる。
さらにさらに、1つのRubyのバージョンに複数のバージョンのRailsも混在できるらしい。

rvmは既にインストールしていたので、省略。(ログ残しとけば良かったorz)

rubyのバージョンを変えるには
->1.8.7へ
>rvm 1.8.7

->1.9.2へ
>rvm 1.9.2
まぁなんて簡単♪

rvmで管理していない状態に戻すには

>rvm system



楽するために
>rvm --default 1.9.2

完全に元に戻すには
>rvm reset



------------< gemset >
rubyのバージョンが変わると、gemも切り替わってる(※gem env や gem list で違いを確認可能)
しかし、1つのRubyのバージョンには1つのgem環境。
rvmでgemの環境も複数管理できるっぽい
gemsetというもので集合を扱っている。
>rvm 1.9.2
>rvm gemset list

gemsets for ruby-1.9.2-p290 (found in /Users/kanpe777/.rvm/gems/ruby-1.9.2-p290)
   global

しょっぱなではglobalというgemsetがあるだけ
新しいgem環境を作ってみる
>rvm gemset create test
'test' gemset created (/Users/kanpe777/.rvm/gems/ruby-1.9.2-p290@test).

確認
>rvm gemset list

gemsets for ruby-1.9.2-p290 (found in /Users/kanpe777/.rvm/gems/ruby-1.9.2-p290)
   global
   test

消す
>rvm gemset delete test

Are you SURE you wish to remove the entire gemset directory 'test' (/Users/kanpe777/.rvm/gems/ruby-1.9.2-p290@test)?
(anything other than 'yes' will cancel) >

確認してくるので、yesを打ち込み、Enter
複数のRailsのバージョン用のgem環境を作成

>rvm gemset create rails30
>rvm gemset create rails31
>rvm gemset create rails32


gem環境を切り替える

>rvm gemset use rails30

もっと簡単に
>rvm 1.9.2@rails30


確認

>rvm gemset list


   global
=> rails30
   rails31
   rails32



railsのインストール前にsqlite3のインストール

>gem install sqlite3-ruby
>gem install sqlite3


そして、railsの3.0をインストール
バージョンを指定しなければならない

>gem install -v=3.0.5 rails


少し時間がかかる

次にgem環境を変え、rails3.1をインストール
>rvm 1.9.2@rails31


やることは一緒、railsのバージョンが異なるくらい

>gem install sqlite3-ruby
>gem install sqlite3
>gem install -v=3.1.1 rails


似たようなことを1.9.2@rails32にも....これ書いた時の最新railsのバージョンは 3.2.2であった。
終わったら、
>rvm 1.8.7


そして、同じようにgemset createをする
(rvm gemset listするとわかるが、1.8.7に変えるとgemsetの中身も変わっていることが確認できる)
そして同じようなことをすると出来上がり。
今後、rubyの1.8.7でrailsを使わないと判断したので、入れない。
一応入れると以下のようなことが予想される

  • rvm 1.8.7@rails30 -> rails 3.0
  •                @rails31 -> rails 3.1
  •                @rails32 -> rails 3.2
  • rvm 1.9.2@rails30 -> rails 3.0
  •                 @rails31 -> rails 3.1
  •                 @rails32 -> rails 3.2