[Date Index]
[Thread Index]
[Author Index]
Re: averaging sublists of different lengths
*To*: mathgroup at smc.vnet.net
*Subject*: [mg75501] Re: averaging sublists of different lengths
*From*: Ray Koopman <koopman at sfu.ca>
*Date*: Thu, 3 May 2007 03:46:40 -0400 (EDT)
*References*: <f19fql$4q7$1@smc.vnet.net>
On May 2, 12:49 am, dantimatter <dantimat... at gmail.com> wrote:
> Hello all,
>
> I have a list of lists like this:
>
> {{70, 66, 64, 68, 64, 56, 68, 78, 62, 68, 84}, {70, 64, 64, 56, 66,
> 56, 62,
> 64, 66, 88, 54, 72}, {58, 54, 54, 60, 72, 70, 62, 68, 74, 76, 70},
> {66,
> 56, 60, 64, 56, 62, 68, 58, 58, 58, 68, 76, 62, 76, 66, 64, 88,
> 56}, {56,
> 64, 72, 72, 70, 62, 76, 76, 76, 76, 86, 80, 100}, {60, 60, 70, 68,
> 60, 60,
> 50, 56, 60, 70, 62, 68, 88, 84, 82}, {54, 66, 72, 62, 70, 66,
> 70,
> 56}, {60, 60, 60, 62, 74, 80, 70}, {54, 62, 64, 72, 76, 74}, {66,
> 74, 70,
> 80, 54, 54, 64}, {72, 66, 60, 52, 52, 66, 66, 58, 60, 66}}
>
> What I'd really like is the average all the 1st values, 2nd values,
> etc, but I'm having trouble figuring out how to deal with the fact
> that the lists are not all the same length. Is there a way to drop
> the sublists as they run out of points to add to the average, i.e. if
> I want the average of all the nth values, but Length[shortSublist] <
> n, can I somehow drop shortSublist and then calculate the average from
> the other sublists?
>
> Also, the Mean[] function requires more than one data point, but I'd
> still like to extract out the values for which there is only one data
> point. Is there a way to do this?
>
> Thanks!
> dan
Here's another, somewhat more awkward, way to do it. It is of
interest only because it solves for the column n's given the
row lengths, and so avoids transposing the padded data.
n = Length[data = {{70, 66, 64, 68, 64, 56, 68, 78, 62, 68, 84},
{70, 64, 64, 56, 66, 56, 62, 64, 66, 88, 54, 72},
{58, 54, 54, 60, 72, 70, 62, 68, 74, 76, 70},
{66, 56, 60, 64, 56, 62, 68, 58, 58, 58, 68, 76, 62, 76, 66,
64, 88, 56},
{56, 64, 72, 72, 70, 62, 76, 76, 76, 76, 86, 80, 100},
{60, 60, 70, 68, 60, 60, 50, 56, 60, 70, 62, 68, 88, 84, 82},
{54, 66, 72, 62, 70, 66, 70, 56},
{60, 60, 60, 62, 74, 80, 70},
{54, 62, 64, 72, 76, 74},
{66, 74, 70, 80, 54, 54, 64},
{72, 66, 60, 52, 52, 66, 66, 58, 60, 66}}]
11
L = Sort[Length/@data]
{6,7,7,8,10,11,11,12,13,15,18}
Total @ PadRight[data,{n,Last@L}] /
Flatten @ MapThread[Table[#1,{#2}]&,
{FoldList[Subtract, n, Most[Length /@ Split@L]],
#-Prepend[Most@#,0]& @ Union@L} ] // InputForm
{686/11, 692/11, 710/11, 716/11, 714/11, 706/11, 328/5, 257/4,
456/7, 502/7, 212/3, 74, 250/3, 80, 74, 64, 88, 56}
Prev by Date:
**Re: averaging sublists of different lengths [CORRECTION]**
Next by Date:
**Re: averaging sublists of different lengths**
Previous by thread:
**Re: averaging sublists of different lengths**
Next by thread:
**Re: averaging sublists of different lengths**
| |