Re: Replacing 1 to many in a list
- To: mathgroup at smc.vnet.net
- Subject: [mg29276] Re: Replacing 1 to many in a list
- From: Carlos Collier <ccollier at tycho.fciencias.unam.mx>
- Date: Sat, 9 Jun 2001 03:09:05 -0400 (EDT)
- Organization: Facultad de Ciencias, UNAM
- References: <9fq1sf$qdl$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi!, here's an idea
vector = {6, 6, 5, 4, 4, 4, Null, 6, Null, 44, Null, 4, 4, 5};
pos = Flatten[Position[vector, Null]]
{7, 9, 11}
dat = Map[x, pos]
{x[7], x[9], x[11]}
vector[[pos]] = dat;
vector
{6, 6, 5, 4, 4, 4, x[7], 6, x[9], 44, x[11], 4, 4, 5}
- also -
dat2 = Array[x, Length[dat]];
vector[[pos]] = dat2;
vector
{6, 6, 5, 4, 4, 4, x[1], 6, x[2], 44, x[3], 4, 4, 5}
Saludos
Carlos
On Fri, 8 Jun 2001, Chris Johnson wrote:
> I think this is probably simple, but I can't find a natural way to do it
> yet. I hope someone out there can help. I have a vector numbers with
> some Null's scattered throughout. The number and location of missing data
> varies. For example,
>
> vector = {6, 6, 5, 4, 4, 4, Null, 6, Null, 44, Null, 4, 4, 5}
>
> Position[vector, Null]
>
> {{7}, {9}, {11}}
>
> Now "/." will let me replace all instances of Null with the same variable
> but I want to replace each instance with a different variable. I would
> prefer to use x[1], x[2] and x[3], but if it were easier, then x[7], x[9]
> and x[11] would be OK also.
>
> The prefered end result would be:
>
> {6, 6, 5, 4, 4, 4, x[1], 6, x[2], 44, x[3], 4, 4, 5}
>
> Any suggestions?
>
> Thanks in advance,
> Chris
>
>
>