Incanter依赖

sun*_*ots 3 clojure incanter read-eval-print-loop

我正在尝试实现以下链接http://data-sorcery.org/category/pca/并发现自己陷入了尝试加载必要的Incanter库,即

(use '(incanter core stats charts datasets))
Run Code Online (Sandbox Code Playgroud)

我对Incanter的唯一依赖是[incanter "1.5.4"].这是否足以加载库,我只是遗漏了什么?

我不确定如何在链接中加载4个突出显示的库.要注意我之前在REPL中使用过Incanter.

编辑:我的文本编辑器具有以下内容

(ns my-namespace.filename
(:use [incanter.core]
      [incanter.stats]
      [incanter.charts]
      [incanter.datasets]))


(def iris (to-matrix (get-dataset :iris))) 
(view iris)
Run Code Online (Sandbox Code Playgroud)

它返回错误 CompilerException javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name, compiling:(pca.clj:11:22)

错误似乎源于内部部分,即get-dataset ...我不确定如何修复.

dea*_*ost 7

既然你说你已经能够从REPL加载依赖项我假设你现在正试图从lein加载它.

您需要在您的project.clj:中包含依赖项:

(defproject my-project "0.1.0-SNAPSHOT"
  :dependencies [[incanter "1.5.4"]])
Run Code Online (Sandbox Code Playgroud)

在要使用incanter函数的文件的顶部,具有以下之一,具有正确的命名空间和文件名.

(ns my-namespace.filename
  (:require (incanter [core :refer :all]
                      [stats :refer :all]
                      [charts :refer :all]
                      [datasets :refer :all]))
Run Code Online (Sandbox Code Playgroud)

这与:

(ns my-namespace.filename
  (:require [incanter.core :refer :all]
            [incanter.stats :refer :all]
            [incanter.charts :refer :all]
            [incanter.datasets :refer :all]))
Run Code Online (Sandbox Code Playgroud)

与...一样:

(ns my-namespace.filename
  (:use [incanter.core]
        [incanter.stats]
        [incanter.charts]
        [incanter.datasets]))
Run Code Online (Sandbox Code Playgroud)

我使用第一个变体来保持一致性,因为我通常不希望:refer :all所有依赖项.