Re: Split a file into multiple files using a pattern
- To: mathgroup at smc.vnet.net
- Subject: [mg69690] Re: Split a file into multiple files using a pattern
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Thu, 21 Sep 2006 07:29:09 -0400 (EDT)
- Organization: The University of Western Australia
- References: <eeqqnq$ooo$1@smc.vnet.net>
In article <eeqqnq$ooo$1 at smc.vnet.net>, "Raj" <rajanikanth at gmail.com>
wrote:
> COuld somebody please tell me how can I do this in Mathematica: I have
> a file of numbers containing -999.99 in places where there is missing
> data.
> I want to split the file into a number of files based on the criterion
> that the number of consecutive - 999.99 are more than 18 .
>
> For example... if the file is of the form
>
> {1,2,3,4,{-999.99 repeated 18 or more times},5,6,7,8}
> then I want the output to be file1.txt which contains {1,2,3,4} and
> file2.txt which contains {5,6,7,8}
Here is one approach using Split (twice):
data = Join[
{1, 2, 3, 4},
Table[-999.99, {20}],
{5, 6, 7, 8},
Table[-999.99, {25}],
{1, 2, 3}
];
Split[data, #1 == -999.99 && #2 == -999.99 & ]
% /. {c:-999.99..} /; Length[{c}] > 18 -> {}
Flatten[#, 1] & /@ DeleteCases[Split[%, #1 != {} && #2 != {} & ], {{}}]
Cheers,
Paul
_______________________________________________________________________
Paul Abbott Phone: 61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
AUSTRALIA http://physics.uwa.edu.au/~paul