Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: averaging sublists of different lengths

  • To: mathgroup at smc.vnet.net
  • Subject: [mg75504] Re: averaging sublists of different lengths
  • From: Bill Rowe <readnewsciv at sbcglobal.net>
  • Date: Thu, 3 May 2007 03:48:16 -0400 (EDT)

On 5/2/07 at 3:47 AM, dantimatter at gmail.com (dantimatter) wrote:

>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?

You can achieve this as follows:

In[19]:=
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,6=
0,
      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}};
 n=Max[Length/@data];

In[21]:=
mat=PadRight[#,n,0]&/@data;

In[22]:=
Total[mat]/(Length@data-Count[mat[[All,#]],0]&/@Range[n])

Out[22]=
{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}
 
--
To reply via email subtract one hundred and four


  • Prev by Date: Re: averaging sublists of different lengths
  • 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