【发布时间】:2013-05-26 22:11:09
【问题描述】:
我正在关注线性回归示例here
(use '(incanter core stats datasets))
(def plant-growth (to-matrix (get-dataset :plant-growth) :dummies true))
(def y (sel plant-growth :cols 0))
(def x (sel plant-growth :cols [1 2]))
(def lm (linear-model y x))
但是我得到了这个错误:
=> (def lm (linear-model y x))
ClassCastException clojure.lang.LazySeq cannot be cast to java.lang.Number clojure.lang.Numbers.lt (Numbers.java:219)
这是怎么回事?
更新:最新的1.4.1 (Stable) docs中的这个例子也没有:
(use '(incanter core stats datasets charts))
(def iris (to-matrix (get-dataset :iris) :dummies true))
(def y (sel iris :cols 0))
(def x (sel iris :cols (range 1 6)))
(def iris-lm (linear-model y x)) ; with intercept term
输出:
=> (def iris-lm (linear-model y x))
ClassCastException clojure.lang.LazySeq cannot be cast to java.lang.Number clojure.lang.Numbers.lt (Numbers.java:219)
我正在使用 Clojure 1.5.1 和 Incanter 1.4.1。这是一个需要修复的错误吗?在哪里可以找到权威的工作示例?
【问题讨论】:
-
试过你的代码。 Clojure 1.4.0 和 Incanter 1.4.0 出现同样的错误。
-
我刚刚尝试了最新的 Incanter 快照,它可以正常工作...
-
@leonid,感谢您抽出宝贵时间进行复制。 @alex,clojars 上的版本似乎包含错误。我的 project.clj 包含:` :dependencies [ [org.clojure/clojure "1.5.1"] [incanter "1.4.1"]]`
-
我刚刚发布了 Incanter 1.5.0 - 你可以试试吗?
-
是的,看起来不错,谢谢 Alex!