Re: Conditions with Statistical Functions
- To: mathgroup at smc.vnet.net
- Subject: [mg66160] Re: [mg66091] Conditions with Statistical Functions
- From: Gregory Lypny <gregory.lypny at videotron.ca>
- Date: Tue, 2 May 2006 02:43:10 -0400 (EDT)
- References: <2252055.1146367664201.JavaMail.root@eastrmwml01.mgt.cox.net>
- Sender: owner-wri-mathgroup at wolfram.com
Thanks again, Bob. Nice use of pure pure functions (Is that what they're called?). Clearly, I have a long way to go in learning the syntax. For example, I never would have thought of using a question mark between the x_List and VectorQ attribute because I'm still not up on what the question mark means in general. Bits and pieces are falling into place though: I'm guessing that your use of the pound sign (#) in the second statement refers to any vector, whereas in my limited use of functions, such as Select, #[[1]] or #[[17]] would refer to the first and seventeenth columns. Greg On Sat, Apr 29, 2006, at 11:27 PM, Bob Hanlon wrote: > conditionalMean[x_List?VectorQ, cond_Function]:= > Mean[Select[x,cond]]; > > conditionalMean[x_List, cond_Function]:= > conditionalMean[#,cond]&/@Transpose[x]; > > m=Table[Random[Integer,200],{4},{3}] > > {{12, 138, 117}, {92, 13, 178}, {147, 131, 123}, {34, 177, 109}} > > Mean/@m > > {89, 283/3, 401/3, 320/3} > > Mean[m] > > {285/4, 459/4, 527/4} > > conditionalMean[#,(#>100)&]&/@m > > {255/2, 178, 401/3, 143} > > conditionalMean[m,(#>100)&] > > {147, 446/3, 527/4} > > > Bob Hanlon > > > ---- Gregory Lypny <gregory.lypny at videotron.ca> wrote: >> Yes, thanks Bob. But what about a matrix, where Mean operates >> column- >> wise? Is there a compact statement where the mean will be calculated >> over the values that exceed 100 in each column all in one shot? What >> I've been doing is looping Select across the columns using Do and >> applying Mean on each pass. I just thought there might be something >> more efficient, if not more elegant. >> >> Regards, >> >> Greg >> >> On Sat, Apr 29, 2006, at 6:53 AM, Bob Hanlon wrote: >> >>> x={10,20,150,200,250}; >>> >>> Mean[Select[x,#>100&]] >>> >>> 200 >>> >>> >>> Bob Hanlon >>> >> >