Edited to fix an inconsistency in the given example data format.
I'm trying to write a simple function to load in a csv list of names which is formatted as "Lastname Firstname Initial " and convert it to "Firstname Lastname".
The following code works:
data = Import["class roll.csv", "CSV"]
names = StringCases[StringTrim@data, LetterCharacter ..][[;; , {2, 1}]]
names = StringJoin[#[[1]], " ", #[[2]]] & /@ names
but it feels a lot like a non-Mathematica type of way, i.e. I'm trying to break my old programming habits and learn how to implement this in more "native" Mathematica way.
If you have any suggestions, alternatives, more efficient ways, ... you'd like to share that'd be much appreciated.
Additional info in response to Ajasja's comment, the example data looks like:
ImportString["
lastname1 firstname2 Ii
lastname2 first2 Ii
lastna3 longfirstname2 Ii
", "CSV"]
the last/first/initials are separated by a space, and each line is padded with spaces to get it to an equal (but large) width.
P.S. The [[-2;;1;;-1]] approach is very nice.
Thank you all.
Part
quite a lot. I guess you could just insert the correct column numbers in the third line and skip the second line? To make this question better, post some example data. $\endgroup$[[-2;;1;;-1]]
thing from code golf :D $\endgroup$Part
part goes to you... $\endgroup$de Vries, Sjoerd, C
are handled properly instead of being transposed asVries de
(if you use space to delimit everything). $\endgroup$