TSV files as a list of list of lists?
- To: mathgroup at smc.vnet.net
- Subject: [mg101150] TSV files as a list of list of lists?
- From: Dan-Erik Lindberg <mathforums.org at dan-erik.com>
- Date: Thu, 25 Jun 2009 07:13:50 -0400 (EDT)
I am loading a few GPS data files as TSV (tab separated). What I would like to do is make the loading of files a bit more dynamic, so I make a list of the file contents. But since the file contents is a list in itself, I get in trouble when I want to manipulate the data. It just takes too long. First, here is how I do it for one file only: GPS1 = Import["F:\\Documents\\Jobb\\SLU\\xyuvw\\GPS.txt", "TSV"] (* Remove column-headers *) GPS1 = Drop[GPS1, 1] (* Make sure row 1 of column 2 or 3 doesn't contain spaces so \ they can be interpreted as numbers (I use swedish RT90 \ grid which gives coordinates in meters). *) If[Head[GPS1[[1, 2]]] == String, GPS1[[All, 2]] = ToExpression[StringReplace[GPS1[[All, 2]], " " -> ""]]]; If[Head[GPS1[[1, 3]]] == String, GPS1[[All, 3]] = ToExpression[StringReplace[GPS1[[All, 3]], " " -> ""]]]; (* Sort the GPS data (first column is time) *) Sort[GPS1] Now, what I would like to do; make an array of file contents (actually a list): GPS[1] = Import["F:\\Documents\\Jobb\\SLU\\xyuvw\\GPS.txt","TSV"]; Do[GPS[1] = ReplacePart[GPS[1], {i,2} -> \ ToExpression[StringReplace[GPS1[[All, 2]], " " -> ""]]], {i, 1, \ Length[GPS[1]]}]; Sort[GPS[1]] This second part takes a very long time to do, because ReplacePart[] has to work through every line one at a time rather than using [All, x] as I do in the first example. Is there any way of doing this faster?