install rcl to ubuntu
rclはRの機能をcommon lispから利用するためのpackage. installは以下でできる.
- sudo apt-get install r-base clisp cl-cffi gsl-bin (他にもパッケージが必要なようだが色々いれているので不明).
- wget http://common-lisp.net/project/rcl/rcl.tgz
- tar zxf rcl.tgz
- sudo mv -R rcl /usr/share/common-lisp/source/
- cd /usr/share/common-lisp/systems; sudo ln -s ../source/rcl/rcl.asd ./
でinstallできる。
使い方は
(asdf:operate 'asdf:load-op :rcl) ;(require :rcl) (in-package :rcl) (r-init) (let* ((x (loop for i from 0 below 10 collect i)) (y (loop for i in x collect (* 2 i)))) (r "plot.default" x y))
これでplotが行われる
以下のエラーは2008.08.04の時点では修正されている
動かしてみると
$clisp
(asdf:operate 'asdf:load-op :rcl)
以下のエラーで止まる
Compiling file /usr/share/common-lisp/source/rcl/alien-defs.lisp ...以下の修正で動くようになる alien-defs.lispの下の方にある- DEFINE-SYMBOL-MACRO: the symbol :READ-ONLY names a global variable
(cffi:defcvar ("R_GlobalEnv" :read-only t) SEXP) (cffi:defcvar ("R_UnboundValue" :read-only t) SEXP) (cffi:defcvar ("R_NilValue" :read-only t) SEXP) ;;; seen in RCLG (also the idea of using :read-only) (cffi:defcvar ("R_InputHandlers" :read-only t) SEXP) (cffi:defcvar ("R_NamesSymbol" :read-only t) SEXP) (cffi:defcvar ("R_DimSymbol" :read-only t) SEXP)を次のように修正すると動く(cffi:defcvar "R_GlobalEnv" SEXP :read-only t) (cffi:defcvar "R_UnboundValue" SEXP :read-only t) (cffi:defcvar "R_NilValue" SEXP :read-only t) ;;; seen in RCLG (also the idea of using :read-only) (cffi:defcvar "R_InputHandlers" SEXP :read-only t ) (cffi:defcvar "R_NamesSymbol" SEXP :read-only t) (cffi:defcvar "R_DimSymbol" SEXP :read-only t)