Re: Transforming/expanding a list

*To*: mathgroup at smc.vnet.net*Subject*: [mg127993] Re: Transforming/expanding a list*From*: Bob Hanlon <hanlonr357 at gmail.com>*Date*: Fri, 7 Sep 2012 04:59:30 -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*References*: <20120906081415.0241D684C@smc.vnet.net>

list = {x1, "NULL", "NULL", x2, "NULL", "NULL", "NULL", "NULL", x3, "NULL", "NULL", x4, x5, "NULL"}; list //. {s__, str_String, r___} :> {s, Last[{s}], r} {x1, x1, x1, x2, x2, x2, x2, x2, x3, x3, x3, x4, x5, x5} Bob Hanlon On Thu, Sep 6, 2012 at 4:14 AM, Mark Coleman <markspcoleman at gmail.com> 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 >

**References**:**Transforming/expanding a list***From:*Mark Coleman <markspcoleman@gmail.com>