-
Notifications
You must be signed in to change notification settings - Fork 288
Description
Incanter 1.9.3/Clojure 1.9.0.
I was trying to run first example from Clojure for Data Science which failed with exception (below).
(xls/read-xls (str (io/resource "UK2010.xls")))
where excel file is taken from http://www.complex-systems.meduniwien.ac.at/elections/ElectionData/UK2010.xls
My quick investigation shows that excel is read properly. Exception is caused by clojure.core.matrix.dataset/dataset
Dataset contains nils at some positions. First data row looks like:
(1.0 "Aberavon" "Wales" 2010.0 50838.0 30958.0 "" "" "" "" "" "" "" "" "" 558.0 "" "" "" "" "" 1276.0 "" "" "" "" "" "" "" "" "" "" "" 4411.0 "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" 919.0 nil nil nil nil "" "" "" "" "" "" "" "" "" 16073.0 "" 5034.0 "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" 2198.0 "" ...)
java.lang.IndexOutOfBoundsException: null
at clojure.lang.PersistentVector.arrayFor (PersistentVector.java:158)
clojure.lang.PersistentVector.nth (PersistentVector.java:162)
clojure.lang.RT.nth (RT.java:889)
clojure.core.matrix.impl.persistent_vector$fn__5281.invokeStatic (persistent_vector.cljc:171)
clojure.core.matrix.impl.persistent_vector/fn (persistent_vector.cljc:168)
clojure.core.matrix.protocols$fn__768$G__744__775.invoke (protocols.cljc:91)
clojure.core.matrix.impl.persistent_vector$fn__5313$iter__5314__5318$fn__5319$fn__5320$fn__5321.invoke (persistent_vector.cljc:227)
clojure.core$mapv$fn__8088.invoke (core.clj:6832)
clojure.lang.PersistentVector.reduce (PersistentVector.java:341)
clojure.core$reduce.invokeStatic (core.clj:6747)
clojure.core$mapv.invokeStatic (core.clj:6823)
clojure.core$mapv.invoke (core.clj:6823)
clojure.core.matrix.impl.persistent_vector$fn__5313$iter__5314__5318$fn__5319$fn__5320.invoke (persistent_vector.cljc:227)
clojure.core.matrix.impl.persistent_vector$fn__5313$iter__5314__5318$fn__5319.invoke (persistent_vector.cljc:226)
clojure.lang.LazySeq.sval (LazySeq.java:40)
clojure.lang.LazySeq.seq (LazySeq.java:49)
clojure.lang.RT.seq (RT.java:528)
clojure.lang.LazilyPersistentVector.create (LazilyPersistentVector.java:44)
clojure.core$vec.invokeStatic (core.clj:377)
clojure.core$vec.invoke (core.clj:367)
clojure.core.matrix.impl.persistent_vector$fn__5313.invokeStatic (persistent_vector.cljc:226)
clojure.core.matrix.impl.persistent_vector/fn (persistent_vector.cljc:223)
clojure.core.matrix.protocols$fn__1521$G__1516__1526.invoke (protocols.cljc:352)
clojure.core.matrix.impl.sequence$fn__8163.invokeStatic (sequence.cljc:95)
clojure.core.matrix.impl.sequence/fn (sequence.cljc:90)
clojure.core.matrix.protocols$fn__1521$G__1516__1526.invoke (protocols.cljc:352)
clojure.core.matrix.impl.dataset$dataset_from_rows.invokeStatic (dataset.clj:78)
clojure.core.matrix.impl.dataset$dataset_from_rows.invoke (dataset.clj:71)
clojure.core.matrix.dataset$dataset.invokeStatic (dataset.clj:36)
clojure.core.matrix.dataset$dataset.invoke (dataset.clj:24)
incanter.core$dataset.invokeStatic (core.clj:1224)
incanter.core$dataset.invoke (core.clj:1210)
incanter.excel$read_sheet.invokeStatic (excel.clj:93)
incanter.excel$read_sheet.invoke (excel.clj:88)
incanter.excel$fn__12133.invokeStatic (excel.clj:146)
incanter.excel$fn__12133.doInvoke (excel.clj:134)
clojure.lang.RestFn.invoke (RestFn.java:410)
clojure.lang.MultiFn.invoke (MultiFn.java:229)
cljds.ch1.data$eval2182$fn__2183.invoke (form-init5918460524630835521.clj:11)
clojure.lang.MultiFn.invoke (MultiFn.java:229)
cljds.ch1.examples$eval2344.invokeStatic (form-init5918460524630835521.clj:15)
cljds.ch1.examples$eval2344.invoke (form-init5918460524630835521.clj:15)
clojure.lang.Compiler.eval (Compiler.java:7062)
clojure.lang.Compiler.eval (Compiler.java:7025)
clojure.core$eval.invokeStatic (core.clj:3206)
clojure.core$eval.invoke (core.clj:3202)
clojure.main$repl$read_eval_print__8572$fn__8575.invoke (main.clj:243)
clojure.main$repl$read_eval_print__8572.invoke (main.clj:243)
clojure.main$repl$fn__8581.invoke (main.clj:261)
clojure.main$repl.invokeStatic (main.clj:261)
clojure.main$repl.doInvoke (main.clj:177)
clojure.lang.RestFn.invoke (RestFn.java:1523)
clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__1536.invoke (interruptible_eval.clj:87)
clojure.lang.AFn.applyToHelper (AFn.java:152)
clojure.lang.AFn.applyTo (AFn.java:144)
clojure.core$apply.invokeStatic (core.clj:657)
clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1965)
clojure.core$with_bindings_STAR_.doInvoke (core.clj:1965)
clojure.lang.RestFn.invoke (RestFn.java:425)
clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invokeStatic (interruptible_eval.clj:85)
clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke (interruptible_eval.clj:55)
clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__1581$fn__1584.invoke (interruptible_eval.clj:222)
clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__1576.invoke (interruptible_eval.clj:190)
clojure.lang.AFn.run (AFn.java:22)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
java.lang.Thread.run (Thread.java:745)