Re: cleaning up imported data
- To: mathgroup at smc.vnet.net
- Subject: [mg84973] Re: cleaning up imported data
- From: dh <dh at metrohm.ch>
- Date: Mon, 21 Jan 2008 06:57:49 -0500 (EST)
- References: <fmv19h$2md$1@smc.vnet.net>
Hi Tom,
here is a solution using a replacement rule:
YourData //.
{x1___,x2:{x3___,x0_,___},{x4___,dup,x5___},x6___}/;Dimensions[{x3}]==Dimensions[{x4}]->{x1,x2,{x4,x0,x5},x6}
hope this helps, Daniel
Tom Metcalf wrote:
> I'm importing some data files (into Mathematica 6) that a colleague
> prepared, where each line of the original data file represents a data
> point, with several parameters recorded for each data point. The
> problem is that for some of these data points, he used ditto marks to
> specify that the value of a particular field is the same as the one
> from the record above, and there are stretches with many ditto marks
> in a row.
>
> I want to convert the ditto marks to the real values, which I did with
> the following Do loop, but the Do loop seems so... un-Mathematica-ish
> and I'm wondering if there's a more elegant way to accomplish the
> task.
>
> hdA = Import[filename, "TSV"];
> dup = hdA[[3,2]] (* manually set the ditto mark character *)
> Do[hdA[[i, j]] =
> If[hdA[[i, j]] == dup, hdA[[i - 1, j]], hdA[[i, j]]], {i,
> Length[hdA]}, {j, Length[hdA[[2]]]}]
>
> --Tom Metcalf
>