J'essaie d'obtenir la matrice de matrice et de covariance à partir d'une structure de données 1000x2
en utilisant incanter
.Obtention de la matrice de moyenne et de covariance à partir de array dans clojure en utilisant incanter
Mon cas de test semble que cette
(ns test.mean-cov
(:require clojure.string
[incanter.core :as in-core]
[incanter.stats :as in-stats])
(:use clojure.java.io))
(def test-mat [[1 2] [2 2]])
(in-stats/mean test-mat)
que je courais en pouvant être éclairés.
L'erreur que je reçois est la suivante:
java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to java.lang.Number
Numbers.java:1104 clojure.lang.Numbers.double_array
stats.clj:1492 incanter.stats/mean
Je ne peux pas dire tout à fait que je comprends, et malheureusement mon recherche sur Google ne contribue pas. Quelqu'un pourrait-il offrir une explication simple et une solution?
Naturellement une façon terrible de le faire serait
(def c1 (first (transpose test-mat)))
(def c2 (second (transpose test-mat)))
(def data-cov-mat [[(in-stats/covariance c1 c1) (in-stats/covariance c1 c2)] [(in-stats/covariance c2 c1) (in-stats/covariance c2 c2)]])
divulgation complète: Je suis nouveau à clojure.
Merci
'mean' attend une séquence de nombres; vous lui passez une séquence de séquences. – Mars