📝Clojure Data Science

📝Clojure Data Science

Clojureでcsvデータを扱う: clojure.data.csv #

clojure.data.csvが2022のデファクトスタンダードになっている(cljure-csv.coreは更新されてない).

Clojure Data Visualization Tools #

Clojure 1.10より導入された tapを活用するツールが便利.

refs. clojure tap - clojure.org 📝clojure.core tap

  • Cognitect REBL
    • Site
    • Datomic開発元でおなじみCognitectが開発している.
    • OSSではないものの Stuart HallowayとCognitectのサポートは強そう.
  • Reveal
    • GitHub
    • Read Eval Visualize Loop for Clojure
    • OSSであり REBLの対抗馬.
    • REPLのように振る舞ういVM上のペインでDataを可視化.
      • つまり起動するとJavaアプリとして立ち上がる.
  • Portal
    • GitHub
    • Web技術で開発されている.
    • つまり起動するとChrome PWAアプリとして立ち上がる.
    • revealより後発なので機能的にはrevealが先行している.
    • UIがrevealよりもイケイケ感がある.
      • (revealはEclipse感があり若干のダサさがある).

Portal Example #

以下は portal でintegrantの状態を表示.

tapについてはだいたい他も同じ.

(require '[portal.api :as p])
(require '[integrant.repl.state :refer [system]])

(def p (p/open)) ; Open a new inspector
(add-tap #'p/submit) ; Add portal as a tap> targe

(tap> system)

(p/clear) ; Clear all values
(remove-tap #'p/submit) ; Remove portal from tap> targetset
(p/close) ; Close the inspector when done

apiの結果を叩くごとに更新するにはこう.

;; 初期化
(def d (p/open))

;; tapの代わりにreset!でデータを挿入.
;; するとportal UIに反映される.
(reset! d (get-product {:cid "ssis00335"}))

;; Portal UIではなく REPLで表示
@d

;; swap!で値の更新.
(swap! d (constantly (get-product {:cid "ssis00333"})))

Scicloj #

ClojureでData Scienceをする人たちのコミュニティ.

定期的にyoutubeで勉強会動画がアップロードされているよう.