Hi.

Check out the doc to group-by and try (group-by #(nth % 2) testvector)

Regards

Am So., 8. Juli 2018 um 08:08 Uhr schrieb Varun J.P <[email protected]>:

> Hi All,
> Thanks for the tip to use (group-by last …)
> It was working fine until my csv file got updated. Now i am not sure abt
> the number of columns in my csv. It could change in every row, but I still
> need to group it with Heading 3 itself.
>
> Example of my updated CSV is as below
>
> Heading1 Heading 2 Heading 3 Heading 4 Heading 5
>> abc 123 Value1 newValue
>> def 234 Value1 anotherValue oneMoreValue
>> ghi dfgew Value1 aValue
>> jkl 456 Value5
>> pqr 567 Value5
>> stu 678 value3
>> vwx sdf value4
>> yza 900 value4
>
>
> Now i cant use (group-by last ...) instead i tried using
>
> (group-by (nth (nth testvector 0) 2) testvector) where testvector is a
> vector of vector but is throwing an error
>
>> "ClassCastException java.lang.String cannot be cast to clojure.lang.IFn  
>> clojure.core/group-by/fn--7011
>> (core.clj:6870)"
>
>
> Can someone suggest a different approch
>
>
>
>
>
> On Tuesday, July 3, 2018 at 10:42:08 PM UTC+5:30, Philipp Neumann wrote:
>>
>> Hi.
>>
>> This is a job for (group-by last ...)
>>
>> Regards
>>
>> Varun J.P <[email protected]> schrieb am Di., 3. Juli 2018, 19:05:
>>
>>> My CSV file is something like the attached file which could have 'n'
>>> number of line. I need to group by the values in the last column.
>>> Current I believe the below code will return me a vector of vector.
>>>
>>> (defn read-csv-file
>>>
>>>  [path]
>>>
>>>  (try
>>>
>>>    (with-open [input-file (io/reader path)]
>>>
>>>      (let [a_list (doall (map (comp first clojure-csv.core/parse-csv) (
>>> line-seq input-file)))]
>>>
>>>        (rest (into [] a_list))))
>>>
>>>    (catch Exception exception (throw exception))))
>>>
>>>
>>> i need to iterate through this vector of vector and create a new vector
>>> of vector containing only elements of the first group, then in next
>>> iteration i need the second set and so on.
>>>
>>> Example CSV
>>>
>>>> Heading1 Heading 2 Heading 3
>>>> abc 123 Value1
>>>> def 234 Value1
>>>> ghi dfgew Value1
>>>> jkl 456 Value5
>>>> pqr 567 Value5
>>>> stu 678 value3
>>>> vwx sdf value4
>>>> yza 900 value4
>>>
>>>
>>>
>>> so when this CSV is parsed i will have something like
>>> [
>>> [abc 123 Value1]
>>> [def 234 Value1]
>>> [ghi dfgew Value1]
>>> [jkl 456 Value5]
>>> [pqr 567 Value5]
>>> [stu 678 value3]
>>> [vwx sdf value4]
>>> [yza 900 value4]]
>>> So when i iterate through this i need to group the vector of vector by
>>> the last column
>>> so my first iteration output should be something like
>>>
>>> [
>>> [abc 123 Value1]
>>> [def 234 Value1]
>>> [ghi dfgew Value1]]
>>> 2nd iteration should be
>>> [
>>> [jkl 456 Value5]
>>> [pqr 567 Value5]]
>>> 3rd should be
>>>
>>> [
>>> [stu 678 value3]]
>>> and so on.
>>>
>>> How would i achieve this in clojure. is there any build in csv parsing
>>> function
>>>
>>> Regards
>>> JP
>>>
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to [email protected]
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>


-- 
http://www.pan2000.de/
MAILTO:[email protected]
MOBIL:(+49)177-7651215
FAX:(+49)1212-515316324

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to