ハッシュ マップの値の型を変更しようとしています (ハッシュ マップには csv ファイルからインポートされたデータが含まれており、すべてを文字列としてインポートし、この問題を引き起こしています)。
入力例:
(def toydata {"EGFR" ["12.34" "4.45" "1.32"], "MYCN" "5.11", "ABC9" ["3.21" "1.32"]})
私が欲しいもの:
{"EGFR" [12.4 4.45 1.32] "MYCN" 5.11 "ABC9" [3.21 1.32]}
以下に示す Thomas による SO で素晴らしい例を見つけましたが、ベクトルであるマップ値では機能しないようです。
(defn remap [m f]
(reduce (fn [r [k v]] (assoc r k (apply f v))) {} m))
マップでこの関数を呼び出そうとすると:
(remap toydata #(Float/parseFloat %))
エラーが発生します:
ClassCastException clojure.lang.PersistentVector cannot be cast to java.lang.String
誰でも助けることができますか?