kobe.r #15 - incanter チョットシッテル

77
Incanter チョットシッテル @tnoda_ Kobe.R #15 [2015-02-28 Sat]

Upload: tnoda

Post on 19-Jul-2015

841 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Kobe.R #15 - Incanter チョットシッテル

Incanter チョットシッテル@tnoda_

Kobe.R #15

[2015-02-28 Sat]

Page 2: Kobe.R #15 - Incanter チョットシッテル

Incanterを知っていますか? (N=100)

No

(100)

Page 3: Kobe.R #15 - Incanter チョットシッテル

Incanterを知っていますか? (N=100)

No

(100)

Page 4: Kobe.R #15 - Incanter チョットシッテル

円グラフなのはいけないと思います

しかも 3D 円グラフ!

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄Incanter で 3D 円グラフを書く方法を知らない。

Page 5: Kobe.R #15 - Incanter チョットシッテル

円グラフなのはいけないと思います

しかも 3D 円グラフ!

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄

Incanter で 3D 円グラフを書く方法を知らない。

Page 6: Kobe.R #15 - Incanter チョットシッテル

円グラフなのはいけないと思います

しかも 3D 円グラフ!

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄Incanter で 3D 円グラフを書く方法を知らない。

Page 7: Kobe.R #15 - Incanter チョットシッテル

Rソースコード

3D円グラフの書き方

1 install.packages("plotrix", dependencies = TRUE)2 library(plotrix)3 sls <- c(100)4 lbls <- c("No\n(100)")5 pie3D(sls , labels = lbls)

R終了のお知らせ本日の発表で R のはなしがでてくるのは、これが最後です。

Page 8: Kobe.R #15 - Incanter チョットシッテル

Rソースコード

3D円グラフの書き方

1 install.packages("plotrix", dependencies = TRUE)2 library(plotrix)3 sls <- c(100)4 lbls <- c("No\n(100)")5 pie3D(sls , labels = lbls)

R終了のお知らせ本日の発表で R のはなしがでてくるのは、これが最後です。

Page 9: Kobe.R #15 - Incanter チョットシッテル

Outline

Incanterの構成• プラットフォーム/ツール• R との比較

Incanterの使い方• インストール/環境構築• データの取扱い

Page 10: Kobe.R #15 - Incanter チョットシッテル

Incanterの構成要素

!"#$%&'(

)#*&+,#'(#-

.,'/&0(+

123#-456

7&8+4+3

! 9#:4#-(+

Page 11: Kobe.R #15 - Incanter チョットシッテル

Incanterの構成要素

!"#$%&'(

)#*&+,#'(#-

.,'/&0(+

123#-456

7&8+4+3

! 9#:4#-(+

!

!

!

.;.<<

=,+-+4#

Page 12: Kobe.R #15 - Incanter チョットシッテル

Incanterの構成要素

!"#$%&'(

)#*&+,#'(#-

.,'/&0(+

123#-456

7&8+4+3

! 9#:4#-(+

!

!

!

.;.<<

=,+-+4#.0,>"+(

.0,>"+(

?@A

?4*4

Page 13: Kobe.R #15 - Incanter チョットシッテル

Incanterとは

Incanterの本体は何かというと

• Clojure ライブラリ である。

Incanterを使うということは

• Clojure ライブラリ を使うということ、すなわち、• Clojure プログラミング をすることである。

Page 14: Kobe.R #15 - Incanter チョットシッテル

Incanterとは

Incanterの本体は何かというと• Clojure ライブラリ である。

Incanterを使うということは

• Clojure ライブラリ を使うということ、すなわち、• Clojure プログラミング をすることである。

Page 15: Kobe.R #15 - Incanter チョットシッテル

Incanterとは

Incanterの本体は何かというと• Clojure ライブラリ である。

Incanterを使うということは• Clojure ライブラリ を使うということ、すなわち、

• Clojure プログラミング をすることである。

Page 16: Kobe.R #15 - Incanter チョットシッテル

Incanterとは

Incanterの本体は何かというと• Clojure ライブラリ である。

Incanterを使うということは• Clojure ライブラリ を使うということ、すなわち、• Clojure プログラミング をすることである。

Page 17: Kobe.R #15 - Incanter チョットシッテル

Incanterの実体

!"#$%&'(

)#*&+,#'(#-

.,'/&0(+

123#-456

7&8+4+3

! 9#:4#-(+

!

!

!

.;.<<

=,+-+4#.0,>"+(

.0,>"+(

?@A

?4*4

Page 18: Kobe.R #15 - Incanter チョットシッテル

Incanterの実体

!"#$%&'(

)#*&+,#'(#-

.,'/&0(+

123#-456

7&8+4+3

! 9#:4#-(+

!

!

!

.;.<<

=,+-+4# .0,>"+(

.0,>"+(

?@A

?4*49#:4#-(+

Page 19: Kobe.R #15 - Incanter チョットシッテル

Clojureとはプログラミング言語、開発環境、エコシステム、・・・

!"#"$!%&'(')*+,-

.)/0123456768

60"2

9)/!123

9/:;*)32

<=>?

9/))3.@*/A

?*+2"27

9/A.1223A.7

?*+2"27

Page 20: Kobe.R #15 - Incanter チョットシッテル

ClojureのコンパイラJavaとは異なる文法

• 前置記法• 表現力豊かなリテラル

型推論int a = 4;

マクロ• 強力な機能、力の源泉• 使いこなせば、プログラミングではなくプログラミング言語を操ることができる。

Page 21: Kobe.R #15 - Incanter チョットシッテル

Clojureと Javaの文法の違い

Javaの Javaメソッド呼び出しobj.aMethod(arg0 , arg1 , ...);AClass.staticMethod(arg0 , arg1 , ...);

Clojureの Javaメソッド呼び出し(. method obj arg0 arg1 ...)(AClass/staticMethod arg0 arg1 ...)

Clojureの Clojure関数呼び出し(func arg0 arg1 ...)

Page 22: Kobe.R #15 - Incanter チョットシッテル

マクロ(並)の例

ネストした式(reduce + (filter valid? (map f coll )))

• 見にくい。書きにくい。括弧多い。

スレッディングマクロ(組み込み)(->> coll

(map f)(filter valid?)(reduce +))

• dplyr %>% dplyr %>% dplyr

Page 23: Kobe.R #15 - Incanter チョットシッテル

マクロ(並)の例

ネストした式(reduce + (filter valid? (map f coll )))

• 見にくい。書きにくい。括弧多い。

スレッディングマクロ(組み込み)(->> coll

(map f)(filter valid?)(reduce +))

• dplyr %>% dplyr %>% dplyr

Page 24: Kobe.R #15 - Incanter チョットシッテル

マクロ(並)の例

ネストした式(reduce + (filter valid? (map f coll )))

• 見にくい。書きにくい。括弧多い。

スレッディングマクロ(組み込み)(->> coll

(map f)(filter valid?)(reduce +))

• dplyr %>% dplyr %>% dplyr

Page 25: Kobe.R #15 - Incanter チョットシッテル

マクロ(並)の例

ネストした式(reduce + (filter valid? (map f coll )))

• 見にくい。書きにくい。括弧多い。

スレッディングマクロ(組み込み)(->> coll

(map f)(filter valid?)(reduce +))

• dplyr %>% dplyr %>% dplyr

Page 26: Kobe.R #15 - Incanter チョットシッテル

ClojureあれこれREPL

> (+ 1 2)3

> (defn f [x] (cond (zero? x) 0 (= 1 x) 1 :else (+ (f (dec x)) (f (- x 2)))))

#’sandbox24497/f

> (f 11)89

コレクションライブラリスレッドセーフ、高速な永続コレクション

並行実行ライブラリ多コアマシンの性能を限界まで引き出す。

Page 27: Kobe.R #15 - Incanter チョットシッテル

ClojureあれこれREPL

> (+ 1 2)3

> (defn f [x] (cond (zero? x) 0 (= 1 x) 1 :else (+ (f (dec x)) (f (- x 2)))))

#’sandbox24497/f

> (f 11)89

コレクションライブラリスレッドセーフ、高速な永続コレクション

並行実行ライブラリ多コアマシンの性能を限界まで引き出す。

Page 28: Kobe.R #15 - Incanter チョットシッテル

ClojureあれこれREPL

> (+ 1 2)3

> (defn f [x] (cond (zero? x) 0 (= 1 x) 1 :else (+ (f (dec x)) (f (- x 2)))))

#’sandbox24497/f

> (f 11)89

コレクションライブラリスレッドセーフ、高速な永続コレクション

並行実行ライブラリ多コアマシンの性能を限界まで引き出す。

Page 29: Kobe.R #15 - Incanter チョットシッテル

Incanterの総合力

!"#$%&'(

)#*&+,#'(#-

.,'/&0(+

123#-456

7&8+4+3

! 9#:4#-(+

!

!

!

.;.<<

=,+-+4# .0,>"+(

.0,>"+(

?@A

?4*49#:4#-(+

Page 30: Kobe.R #15 - Incanter チョットシッテル

Workflow

!"#"

$%&'()*+,&# -&#,&#./#0%+ 1

.'),'%()22 3+"4/252

Page 31: Kobe.R #15 - Incanter チョットシッテル

Workflow

!"#"

$%&'()*+,&# -&#,&#./#0%+ 1

.'),'%()22 3+"4/252

!"#"

$%&'()-&#,&#*+("+#)'674%8&')

Page 32: Kobe.R #15 - Incanter チョットシッテル

Integration

!"#

$%#

&%' ()*++,

-,)./ -0+.1

Page 33: Kobe.R #15 - Incanter チョットシッテル

Integration

!"#

$%#

&%' ()*++,

-,)./ -0+.1

234)305.

Page 34: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 1

Incanterとは• Clojure ライブラリ

Clojureとは

• Java + 強化ライブラリ (clojure-x.y.z.jar)• 文法, REPL, 高速永続コレクション, 並行実行, マクロ

Incanterの総合力• R + Python• Integration

Page 35: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 1

Incanterとは• Clojure ライブラリ

Clojureとは

• Java + 強化ライブラリ (clojure-x.y.z.jar)• 文法, REPL, 高速永続コレクション, 並行実行, マクロ

Incanterの総合力• R + Python• Integration

Page 36: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 1

Incanterとは• Clojure ライブラリ

Clojureとは

• Java + 強化ライブラリ (clojure-x.y.z.jar)• 文法, REPL, 高速永続コレクション, 並行実行, マクロ

Incanterの総合力• R + Python• Integration

Page 37: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 1

Incanterとは• Clojure ライブラリ

Clojureとは

• Java + 強化ライブラリ (clojure-x.y.z.jar)• 文法, REPL, 高速永続コレクション, 並行実行, マクロ

Incanterの総合力• R + Python• Integration

Page 38: Kobe.R #15 - Incanter チョットシッテル

How to install Incanter (1/2)

Java

• パッケージ管理ツールでインストールするのが簡単• Debian 系 Linux$ sudo apt-get install openjdk-7-jdk

• Oracle のサイトからダウンロード• http://www.oracle.com/technetwork/java/javase/downloads/index.html

Clojure

• Leiningen をインストールする• 実体はシェルスクリプトなのでダウンロードするだけ$ curl -L -O https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein$ chmod +x lein

Page 39: Kobe.R #15 - Incanter チョットシッテル

How to install Incanter (1/2)

Java

• パッケージ管理ツールでインストールするのが簡単• Debian 系 Linux$ sudo apt-get install openjdk-7-jdk

• Oracle のサイトからダウンロード• http://www.oracle.com/technetwork/java/javase/downloads/index.html

Clojure

• Leiningen をインストールする• 実体はシェルスクリプトなのでダウンロードするだけ$ curl -L -O https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein$ chmod +x lein

Page 40: Kobe.R #15 - Incanter チョットシッテル

How to install Incanter (1/2)

Java

• パッケージ管理ツールでインストールするのが簡単• Debian 系 Linux$ sudo apt-get install openjdk-7-jdk

• Oracle のサイトからダウンロード• http://www.oracle.com/technetwork/java/javase/downloads/index.html

Clojure

• Leiningen をインストールする• 実体はシェルスクリプトなのでダウンロードするだけ$ curl -L -O https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein$ chmod +x lein

Page 41: Kobe.R #15 - Incanter チョットシッテル

How to install Incanter (2/2)

Incanter

• 公式サイトのダウンロードリンク• http://incanter.org/downloads/

罠。インストール駄目、絶対より正確には

• とにかく古い• Leiningen が必要な Java/Clojure ライブラリを管理

• もちろん、その中に Incanter が含まれる• 明示的なインストール作業不要

Page 42: Kobe.R #15 - Incanter チョットシッテル

How to install Incanter (2/2)

Incanter

• 公式サイトのダウンロードリンク• http://incanter.org/downloads/

罠。インストール駄目、絶対

より正確には• とにかく古い• Leiningen が必要な Java/Clojure ライブラリを管理

• もちろん、その中に Incanter が含まれる• 明示的なインストール作業不要

Page 43: Kobe.R #15 - Incanter チョットシッテル

How to install Incanter (2/2)

Incanter

• 公式サイトのダウンロードリンク• http://incanter.org/downloads/

罠。インストール駄目、絶対より正確には

• とにかく古い• Leiningen が必要な Java/Clojure ライブラリを管理

• もちろん、その中に Incanter が含まれる• 明示的なインストール作業不要

Page 44: Kobe.R #15 - Incanter チョットシッテル

Local Maven Repository

!"#

$%&%

'()*+,-

$%&%

'()*+,-

./)*0(+

'()*+,-

./)*0(+

'()*+,-

Page 45: Kobe.R #15 - Incanter チョットシッテル

Incanter Project

Create a new Clojure project

$ lein new tnoda.kobexr.demo

コマンドラインから lein new プロジェクト名 で作成

Add Incanter to dependencies

プロジェクトファイルに [incanter "1.5.6"] を追加

(defproject tnoda.kobexr.demo "0.1.0-SNAPSHOT":description "FIXME: write description":url "http://example.com/FIXME":license {:name "Eclipse Public License"

:url "http://www.eclipse.org/legal/epl-v10.html"}:dependencies [[org.clojure/clojure "1.6.0"]

[incanter "1.5.6"][nz.ac.waikato.cms.weka/weka-dev "3.7.11"]])

Page 46: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 2Incanter のインストール

Java

• パッケージマネージャ (dpkg, Homebrew)• オラクルのサイトからダウンロード

Clojure

• Leiningen をインストール• 実体はシェルスクリプト。コピーするだけ。

Incanter

• インストールしてはいけない。• Leiningen にライブラリの管理を任せる。

Page 47: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 2Incanter のインストールJava

• パッケージマネージャ (dpkg, Homebrew)• オラクルのサイトからダウンロード

Clojure

• Leiningen をインストール• 実体はシェルスクリプト。コピーするだけ。

Incanter

• インストールしてはいけない。• Leiningen にライブラリの管理を任せる。

Page 48: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 2Incanter のインストールJava

• パッケージマネージャ (dpkg, Homebrew)• オラクルのサイトからダウンロード

Clojure

• Leiningen をインストール• 実体はシェルスクリプト。コピーするだけ。

Incanter

• インストールしてはいけない。• Leiningen にライブラリの管理を任せる。

Page 49: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 2Incanter のインストールJava

• パッケージマネージャ (dpkg, Homebrew)• オラクルのサイトからダウンロード

Clojure

• Leiningen をインストール• 実体はシェルスクリプト。コピーするだけ。

Incanter

• インストールしてはいけない。• Leiningen にライブラリの管理を任せる。

Page 50: Kobe.R #15 - Incanter チョットシッテル

Getting started with Incanter

データフレーム(Incanter 用語では dataset)をつくるところから始めるのは R と同じ。

デフォルトのデータセットから

(ds/get-dataset :iris)

ファイルから

(i/read-dataset "http://example.com/data.csv":header true)

Page 51: Kobe.R #15 - Incanter チョットシッテル

Emacs

Page 52: Kobe.R #15 - Incanter チョットシッテル

Graphing

R-like

(def chart(c/scatter-plot ($ :Petal.Width iris)

($ :Petal.Length iris):title "Edgar␣Anderson ’s␣Iris␣Data"))

(i/view chart)

Clojure-way

(i/with-data iris(i/view(c/scatter-plot :Petal.Width :Petal.Length

:title "Edgar␣Anderson ’s␣Iris␣Data")))

Page 53: Kobe.R #15 - Incanter チョットシッテル

Graphing (Mac OS X)

Page 54: Kobe.R #15 - Incanter チョットシッテル

まとめ

データセットをつくるR でデータフレームつくるのと同じ

グラフィクス・統計解析R と同じような関数が用意されている

Incanterでできないものは?

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄

Page 55: Kobe.R #15 - Incanter チョットシッテル

まとめデータセットをつくるR でデータフレームつくるのと同じ

グラフィクス・統計解析R と同じような関数が用意されている

Incanterでできないものは?

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄

Page 56: Kobe.R #15 - Incanter チョットシッテル

まとめデータセットをつくるR でデータフレームつくるのと同じ

グラフィクス・統計解析R と同じような関数が用意されている

Incanterでできないものは?

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄

Page 57: Kobe.R #15 - Incanter チョットシッテル

まとめデータセットをつくるR でデータフレームつくるのと同じ

グラフィクス・統計解析R と同じような関数が用意されている

Incanterでできないものは?

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄

Page 58: Kobe.R #15 - Incanter チョットシッテル

まとめデータセットをつくるR でデータフレームつくるのと同じ

グラフィクス・統計解析R と同じような関数が用意されている

Incanterでできないものは?

_人人人人人人人人_> 3D pie chart < ̄YYYYYYYY ̄

Page 59: Kobe.R #15 - Incanter チョットシッテル

Incanterの不可能を可能にする

問いR にできて Incanter にできないものを Incanter で実現するにはどうすればよいか?

答えIncanter と R をつないで、Incanter から R を使えるようにすればよい。

Example (Solution)

• Rserve• http://www.rforge.net/Rserve/

Page 60: Kobe.R #15 - Incanter チョットシッテル

Incanterの不可能を可能にする

問いR にできて Incanter にできないものを Incanter で実現するにはどうすればよいか?

答えIncanter と R をつないで、Incanter から R を使えるようにすればよい。

Example (Solution)

• Rserve• http://www.rforge.net/Rserve/

Page 61: Kobe.R #15 - Incanter チョットシッテル

Incanterの不可能を可能にする

問いR にできて Incanter にできないものを Incanter で実現するにはどうすればよいか?

答えIncanter と R をつないで、Incanter から R を使えるようにすればよい。

Example (Solution)

• Rserve• http://www.rforge.net/Rserve/

Page 62: Kobe.R #15 - Incanter チョットシッテル

Incanterの不可能を可能にする

問いR にできて Incanter にできないものを Incanter で実現するにはどうすればよいか?

答えIncanter と R をつないで、Incanter から R を使えるようにすればよい。

Example (Solution)

• Rserve• http://www.rforge.net/Rserve/

Page 63: Kobe.R #15 - Incanter チョットシッテル

Rserve

!"#$%#

!

&'()*$#

&'+#,-./0%01

2,30,-#$

Page 64: Kobe.R #15 - Incanter チョットシッテル

Rserve/Clojure

(r/plot3d [100] :labels ["No\n(100)"])

No

(100)

Page 65: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 3

Incanterの利用• だいたい R と同じ。• データフレームを作るところから始める。

• Incanter ではデータセットと呼ぶ。

グラフィクス・統計解析• データフレームに対して処理を行う。• R と同じような関数が用意されている。

Rにしか無い機能は• Rserve で R を Incanter から使う

Page 66: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 3

Incanterの利用• だいたい R と同じ。• データフレームを作るところから始める。

• Incanter ではデータセットと呼ぶ。

グラフィクス・統計解析• データフレームに対して処理を行う。• R と同じような関数が用意されている。

Rにしか無い機能は• Rserve で R を Incanter から使う

Page 67: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 3

Incanterの利用• だいたい R と同じ。• データフレームを作るところから始める。

• Incanter ではデータセットと呼ぶ。

グラフィクス・統計解析• データフレームに対して処理を行う。• R と同じような関数が用意されている。

Rにしか無い機能は• Rserve で R を Incanter から使う

Page 68: Kobe.R #15 - Incanter チョットシッテル

Checkpoint 3

Incanterの利用• だいたい R と同じ。• データフレームを作るところから始める。

• Incanter ではデータセットと呼ぶ。

グラフィクス・統計解析• データフレームに対して処理を行う。• R と同じような関数が用意されている。

Rにしか無い機能は• Rserve で R を Incanter から使う

Page 69: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは

• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 70: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、

• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 71: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 72: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 73: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java

• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 74: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ

• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 75: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 76: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。

Page 77: Kobe.R #15 - Incanter チョットシッテル

Conclusion

Incanterとは• R みたいに使える、• Clojure のライブラリ

Clojureとは

• Java• REPL, コンパイラ, 並行ライブラリ, マクロ• マルチコアの時代のプログラミング言語

Incanterで 3D円グラフを描くには• Rserve を使って R に描かせる。