Re: read CSV
- To: mathgroup at smc.vnet.net
- Subject: [mg117802] Re: read CSV
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Thu, 31 Mar 2011 04:06:07 -0500 (EST)
On 3/30/11 at 4:13 AM, alan.isaac at gmail.com (Alan) wrote:
>I've received some files formatted like below. How can I read
>selected columns into a list? I'm coming from a background where I'd
>read in each line, discarding the first, then (in this case at
>least) split on the comma, and coerce the type. So I'm happy to do
>that if I can figure out how. (Naturally I could preprocess the
>data into a form that say ReadList likes better, but I'm looking for
>a pure Mathematica solution.)
>Thanks, Alan Isaac
>"x","y","color","pen down?"
>"0","0.26161459854014585","105","true"
>"1","0.2665251497682828","105","true"
>"2","0.29244385081680907","105","true"
>"3","0.31995416628471895","105","true"
If I were to do this entirely within Mathematica, I would read
the data in by doing
data=Import[filename, "CSV"];
Then select the columns I wanted by doing something like
data[[All,{1,4}]]
This would select the 1st and 4th columns.
Finally, I assume you want the numbers as numbers not strings.
So, I would convert the strings to numbers using ToExpression.
But frankly, I regard this as rather cumbersome. Since I use a
Mac and have an excellent text editor with a much better grep
engine than what is available in Mathematica, I would
pre-process the file using that tool into a form acceptable to
Get and use Get to read the file. In fact, I find it so handy to
use my text editor with Mathematica, I have set up a Mathematica
function that accepts a filename as an argument and has the file
opened up by my text editor. Additionally, I have grep macros
set up in the text editor to do the type of pre-processing needed.
Mathematica is a very powerful tool that can be used for a great
many purposes. But it is not the most efficient tool to use for
text processing.