Re: Replacing 1 to many in a list
- To: mathgroup at smc.vnet.net
- Subject: [mg29259] Re: [mg29250] Replacing 1 to many in a list
- From: Adriano Pascoletti <pascolet at dimi.uniud.it>
- Date: Sat, 9 Jun 2001 03:08:48 -0400 (EDT)
- References: <200106080815.EAA26992@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
At 4:15 -0400 8-06-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? > Chris, RuleDelayed solves your ptoblem: Block[{i = 0}, vector /. {Null :> x[++i]}] yields {6, 6, 5, 4, 4, 4, x[1], 6, x[2], 44, x[3], 4, 4, 5} Adriano Pascoletti
- References:
- Replacing 1 to many in a list
- From: Chris Johnson <cjohnson@shell.faradic.net>
- Replacing 1 to many in a list