編集:
データは本当にこのように見えます。
1,000-00-000、GRABBUS、OCTOPUS ,, M、26-Nev-12、、05 FRENCH TOAST ROAD ,, VACANT、ZA、1867、(001)111-1011、(002)111-1000 ,,
専有情報が含まれているので、ばかげているように見せなければなりません。
これは、clojure-csvを使用してベクトルのベクトルを作成する前の状態です。
簡単にするために解析後の数値を使用しましたが、値に減らされていません。clojure-csvで解析されたデータから特定の列を選択して、より小さなcsv行を作成したいと思います。
ご迷惑をおかけしましたことをお詫び申し上げます。
編集終了:
いつreduceを使用するか、代わりにpmapを使用するかをどのように決定しますか?
少し前に、reduceについてブログにコメントがありました。具体的には、reduceは一般的に並列化できないが、map(pmap)は並列化できるというコメントがありました。
削減を使用する場合と使用しない場合で違いが生じるのはいつですか。次のような例では、違いがありますか?
ありがとうございました。
(def csv-row [1 2 3 4 5 6 7 8 9])
(def col-nums [0 1 4])
(defn reduce-csv-rowX
"Accepts a csv-row and a list of columns to extract, and
reduces the csv-row to the selected list using a list comprehension."
[csv-row col-nums]
(for [col-num col-nums
:let [part-row (nth csv-row col-num nil)]]
part-row))
(defn reduce-csv-row
"Accepts a csv-row and a list of columns to extract, and
reduces the csv-row to the selected list."
[csv-row col-nums]
(reduce
(fn [out-csv-row col-num]
(let [out-val (nth csv-row col-num nil)]
(if-not (nil? out-val)
(conj out-csv-row out-val))))
[]
col-nums))
編集:
(defn reduce-csv-row "抽出するcsv-rowと列のリストを受け入れ、csv-rowを選択したリストに縮小します。" [csv-row col-nums](reduce(fn [out-csv- row col-num](let [out-val(nth csv-row col-num nil)](conj out-csv-row out-val)))[] col-nums))