Re: Transforming/expanding a list
- To: mathgroup at smc.vnet.net
- Subject: [mg128017] Re: Transforming/expanding a list
- From: Dana DeLouis <dana01 at me.com>
- Date: Sun, 9 Sep 2012 05:09:26 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
> real numbers, separating some number of Strings
Hi. If it's really just any String, perhaps another idea:
v={1,2,"Null", 3,"Null2", "Null3",4,5,"Null4",6};
FoldList[If[StringQ[#2],#1,#2]&, First[v], Rest[v]]
{1,2,2,3,3,3,4,5,5,6}
= = = = = = = = = =
HTH :>)
Dana DeLouis
Mac & Mathematica 8
= = = = = = = = = =
On Thursday, September 6, 2012 4:15:28 AM UTC-4, Mark Coleman wrote:
> I'm working on some Mathematica code that will help transform a large set of lists drawn from my company's legacy database systems. A typical row of the raw data looks like
>
> {x1,NULL,NULL,x2,NULL,NULL,NULL,NULL,x3,NULL,NULL,x4,x5,NULL} ...
>
> The lists are sequences of real numbers, separating some some number of Strings which for convenicence sake we call "NULL" (as opposed to a proper Mathematica Null). The goal is to create a new list where each NULL is replaced by the real number that most recently proceeds it (note that any number of NULLs may occur before or after any real values). I would like the code to return
>
> {x1,x1,x1,x2,x2,x2,x2,x2,x3,x3,x3,x4,x5,x5}
>
>
> Thanks
> Mark