Weitere ähnliche Inhalte
Ähnlich wie Kobe.R #15 - Incanter チョットシッテル (20)
Kürzlich hochgeladen (11)
Kobe.R #15 - Incanter チョットシッテル
- 7. R ソースコード
3D 円グラフの書き方
1 install.packages("plotrix", dependencies = TRUE)
2 library(plotrix)
3 sls <- c(100)
4 lbls <- c("Non(100)")
5 pie3D(sls , labels = lbls)
- 8. R ソースコード
3D 円グラフの書き方
1 install.packages("plotrix", dependencies = TRUE)
2 library(plotrix)
3 sls <- c(100)
4 lbls <- c("Non(100)")
5 pie3D(sls , labels = lbls)
R 終了のお知らせ
本日の発表で R のはなしがでてくるのは、これが最後です。
- 21. 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 ...)
- 25. マクロ(並)の例
ネストした式
(reduce + (filter valid? (map f coll )))
• 見にくい。書きにくい。括弧多い。
スレッディングマクロ(組み込み)
(->> coll
(map f)
(filter valid?)
(reduce +))
• dplyr %>% dplyr %>% dplyr
- 26. 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
- 27. 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
コレクションライブラリ
スレッドセーフ、高速な永続コレクション
- 28. 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
コレクションライブラリ
スレッドセーフ、高速な永続コレクション
並行実行ライブラリ
多コアマシンの性能を限界まで引き出す。
- 37. Checkpoint 1
Incanter とは
• Clojure ライブラリ
Clojure とは
• Java + 強化ライブラリ (clojure-x.y.z.jar)
• 文法, REPL, 高速永続コレクション, 並行実行, マクロ
Incanter の総合力
• R + Python
• Integration
- 39. 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
- 40. 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
- 41. How to install Incanter (2/2)
Incanter
• 公式サイトのダウンロードリンク
• http://incanter.org/downloads/
- 42. How to install Incanter (2/2)
Incanter
• 公式サイトのダウンロードリンク
• http://incanter.org/downloads/
罠。インストール駄目、絶対
- 43. How to install Incanter (2/2)
Incanter
• 公式サイトのダウンロードリンク
• http://incanter.org/downloads/
罠。インストール駄目、絶対
より正確には
• とにかく古い
• Leiningen が必要な Java/Clojure ライブラリを管理
• もちろん、その中に Incanter が含まれる
• 明示的なインストール作業不要
- 45. 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"]])
- 49. Checkpoint 2
Incanter のインストール
Java
• パッケージマネージャ (dpkg, Homebrew)
• オラクルのサイトからダウンロード
Clojure
• Leiningen をインストール
• 実体はシェルスクリプト。コピーするだけ。
Incanter
• インストールしてはいけない。
• Leiningen にライブラリの管理を任せる。
- 50. Getting started with Incanter
データフレーム(Incanter 用語では dataset)をつくるところから始めるのは R と同じ。
デフォルトのデータセットから
(ds/get-dataset :iris)
ファイルから
(i/read-dataset "http://example.com/data.csv"
:header true)
- 52. 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"
)))
- 62. Incanter の不可能を可能にする
問い
R にできて Incanter にできないものを Incanter で実現するに
はどうすればよいか?
答え
Incanter と R をつないで、Incanter から R を使えるようにす
ればよい。
Example (Solution)
• Rserve
• http://www.rforge.net/Rserve/
- 67. Checkpoint 3
Incanter の利用
• だいたい R と同じ。
• データフレームを作るところから始める。
• Incanter ではデータセットと呼ぶ。
グラフィクス・統計解析
• データフレームに対して処理を行う。
• R と同じような関数が用意されている。
- 68. Checkpoint 3
Incanter の利用
• だいたい R と同じ。
• データフレームを作るところから始める。
• Incanter ではデータセットと呼ぶ。
グラフィクス・統計解析
• データフレームに対して処理を行う。
• R と同じような関数が用意されている。
R にしか無い機能は
• Rserve で R を Incanter から使う
- 77. Conclusion
Incanter とは
• R みたいに使える、
• Clojure のライブラリ
Clojure とは
• Java
• REPL, コンパイラ, 並行ライブラリ, マクロ
• マルチコアの時代のプログラミング言語
Incanter で 3D 円グラフを描くには
• Rserve を使って R に描かせる。