Re: Data Format

*To*: mathgroup at smc.vnet.net*Subject*: [mg127561] Re: Data Format*From*: awnl <awnl at gmx-topmail.de>*Date*: Sat, 4 Aug 2012 06:01: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*References*: <jvaran$751$1@smc.vnet.net> <jvdepb$bvi$1@smc.vnet.net> <jvg1h9$rk9$1@smc.vnet.net>

Hi, >>> Please consider the following code, which is data imported directly into >>> Mathematica via a .mtp file (Minitab Portable Worksheet), and then using >>> list assignment: >>> >>> list = {"C1" -> {5.`, 4.`, 7.`, 3.`, 6.`, 6.`, 7.`, 1.`, 5.`, 6.`}, >>> "C2" -> {2.`, 5.`, 6.`, 7.`, 7.`, 1.`, 5.`, 4.`, 7.`, 2.`}} >>> >>> The following two commands work: >>> >>> Mean["C1" /. list] >>> >>> Mean["C2" /. list] >>> >>> However I would prefer to be able to issue the following commands instead: >>> >>> Mean[C1] >>> >>> Mean[C2] >>> >>> How can the code at top be converted so that these simpler commands will >>> work? >> >> For just this simple case I wouldn't suggest to create the symbols C1 >> and C2. For more complicated cases it might be a reasonable choice but >> probably there are better ways to deal with this. Anyway, this will do >> what I think you want: >> >> (Set @@ {Symbol[#1], #2}) & @@@ list > > You might want to precede that by > > Clear @@ (First /@ list) > > just in case the symbols in 'list' are already defined. very good point, alternatively you could use the following code, which takes care to not evaluate the symbols it assigns to: (Set @@ Append[ToExpression[#1,InputForm,Hold],#2]) & @@@ list albert