ハリ・セルダンになりたくて

便利なエントリーへのリンク
矢野の講義サイトへのリンク集

2016-03-27

[][] ESS (Emacs Speaks Statistics) をgitからインストール

  1. cd ~/bin/
  2. git clone https://github.com/emacs-ess/ESS.git
  3. cd ess
  4. make
  5. ~/.emacsに以下のように記述*1

(add-to-list 'load-path "~/bin/ess/lisp")

(load "ess-site")

以上でemacs上でM-RでRを起動できるようになる*2

[][] Emacsでjulia-mode

ESS (Emacs Speaks Statistics) にはすでにjulia-modeが入っているはずなのですが、OS Xでうまく動かないので、しょうがなくJulia-lang公式のjulia-mode.elを入れてみました。

  1. Julia-lang公式のgithubから julia-mode.el をダウンロード(ページの「RAW」をクリックしてローカル[たとえば~/bin/julia]に保存)
  2. ~/.emacsに以下のように記述

(add-to-list 'load-path "~/bin/julia")

(require 'julia-mode)

*1:~/.emacs.d/init.elに書いておくのが現在の正しいお作法かもしれません。でも矢野がemacs使い始めた25年前にはそんな便利な仕組みはなかったので、今でも~/.emacsを使っています・・・

*2:OS Xの場合:makeでwgetを使う必要があるので、homebrewの場合はbrew install wgetしておくこと。

トラックバック - http://d.hatena.ne.jp/koiti_yano/20160327

2016-03-08

[] OS X 10.9とMatlab R2016aでgfortranを使う

(1)OS X 10.9 (Mavericks)にgfortranをインストール

  1. Xcodeをインストール:App Storeの検索窓に"xcode"と入力して、xcodeを探して、インストールする
  2. Xcode 6.1以降ではcommand-line toolsがプレインストールされるようになった模様 [参考] Mac での Xcode コマンド ライン ツールのインストール
  3. gccをダウンロード:"High Performance Computing for Mac OS X" http://hpc.sourceforge.net/ からgcc-4.9-bin.tar.gzをダウンロード*1
  4. gccを解凍:ターミナルでsudo tar -zxvf gcc-4.9-bin.tar.gz -C / と入力*2

[Ref] http://hpc.sourceforge.net/

(2)Matlab R2016aでgfortranを使う

次にOS X 10.9 (Mavericks)上のMatlab r2016aでgfortranを使うには/usr/local/binへのパスを設定する必要があるため、start.mなどに以下のように書いておく。

setenv('PATH', [getenv('PATH') ':/usr/local/bin']);

[Ref] http://www.mathworks.co.jp/matlabcentral/answers/116922-mex-cannot-find-gfortran-compiler-mac-os

最後にgfortranが設定されているか確認する。

mex -setup FORTRAN

(3)Matlab R2016aでFortranコードを確認

/Applications/MATLAB_R2014a.app/extern/examples/refbookからサンプルコードをコピーしてmexを確認する。

[コード例1]

mex timestwo.F

(コンパイルが無事に終了)

x = 99;

y = timestwo(x)

[Ref] http://www.mathworks.co.jp/jp/help/matlab/matlab_external/passing-a-scalar_btgcf9p-1.html

[コード例2]

mex matsq.F

(コンパイルが無事に終了)

x = [1 2 3; 4 5 6];

y = matsq(x)

[Ref] http://www.mathworks.co.jp/jp/help/matlab/matlab_external/passing-matrices.html

[コード例3]

mex sincall.F fill.F

(コンパイルが無事に終了)

sincall

[Ref] http://www.mathworks.co.jp/jp/help/matlab/matlab_external/calling-functions-from-fortran-mex-files.html

[コード例4]

mex yprimef.F yprimefg.F

(コンパイルが無事に終了)

yprimef(1, 1:4)

*1:Mathworksの公式サイトには「Intel Fortran Composer XEのみサポート」と書いてあるが、簡単なコードはgcc-4.9でも動く模様(今後要確認)

*2:gccやgfortranがインストールされるのは/usr/local配下

トラックバック - http://d.hatena.ne.jp/koiti_yano/20160308

2015-12-02

[] Stateでダミー変数の作り方(の一例)

たとえばこんな感じ(詳しいことは出典参照)

gen year1=1 if year==2011

replace year1=0 if year1 == .

[出典] http://www.stata.com/support/faqs/data-management/creating-dummy-variables/

トラックバック - http://d.hatena.ne.jp/koiti_yano/20151202

2015-11-02

[][] varsでのベクトル自己回帰の結果をxtableでLaTeXに出力する

変数それぞれに対して係数の推定結果を出力することは可能*1。たとえばこんな感じ:

require(vars)

data(Canada)

var.canada <- VAR(Canada, p = 2, type = "none")

summary(var.canada)

ここまではvarsの機能。Canadaはe, prod, rw, Uの4変数からなるデータセット。たとえばUに関する回帰式の推定結果をLaTeXのtable形式に出力するにはxtableを使って以下のように行う。

require(xtable)

xtable(summary(var.canada$varresult$U))

*1:一度に全部の式を出力する方法があったら教えて下さい。

トラックバック - http://d.hatena.ne.jp/koiti_yano/20151102

2015-08-07

[][][] install.packagesでCRANを指定する

optionsコマンドでreposを指定する。

options(repos="http://cran.ism.ac.jp/")

トラックバック - http://d.hatena.ne.jp/koiti_yano/20150807

2015-07-26

[][][] 配列の1列目をインデックスとしてソートする

Matlabで配列の1列目をインデックスとしてソート(並べ替え)する

たとえば

A = [2 5 8 ; 3 4 7 ; 1 6 9]

という配列の1列目(1列目の[2;3;1])をインデックスとして昇順でソートする。つまり以下のような配列Cを得たい。

C = [1 6 9 ; 2 5 8 ; 3 4 7]

この場合、sortrowsを使えば簡単にできる。

B = sortrows(A)

isequal(B,C)

参考:
http://jp.mathworks.com/help/matlab/ref/sortrows.html
http://jp.mathworks.com/help/matlab/ref/isequal.html

トラックバック - http://d.hatena.ne.jp/koiti_yano/20150726

2015-07-20

[] OS X (10.9.5)にHomebrewでEmacs 24.5をインストール

$ brew install --japanese --cocoa -v emacs

なお、Emacs 24.4は/usr/local/Cellar/emacs/24.5配下にインストールされる。

ちなみに/usrは不可視になっているので、termianl上で以下のように入力すればフォルダが開ける:

open /usr/local/Cellar/emacs/24.5

[参考]
http://www.sevencredit.com/2014/07/02/580/

トラックバック - http://d.hatena.ne.jp/koiti_yano/20150720