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: [mg75486] Re: averaging sublists of different lengths
  • From: ap.alcover at gmail.com
  • Date: Thu, 3 May 2007 03:38:38 -0400 (EDT)
  • References: <f19fql$4q7$1@smc.vnet.net>

On 2 mai, 09:49, 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

Good day,

Here is my way to do it :

In[1]:=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}};

In[2]:=n=Max[Length/@data]
Out[2]=18

In[3]:=data2=Transpose[PadRight[#,n,Null]&/@data];

In[4]:=data3=DeleteCases[#,Null]&/@data2
Out[4]={{70,70,58,66,56,60,54,60,54,66,72},
{66,64,54,56,64,60,66,60,62,74,66},
{64,64,54,60,72,70,72,60,64,70,60},
{68,56,60,64,72,68,62,62,72,80,52},
{64,66,72,56,70,60,70,74,76,54,52},
{56,56,70,62,62,60,66,80,74,54,66},
{68,62,62,68,76,50,70,70,64,66},
{78,64,68,58,76,56,56,58},
{62,66,74,58,76,60,60},
{68,88,76,58,76,70,66},
{84,54,70,68,86,62},
{72,76,80,68},
{62,100,88},
{76,84},
{66,82},
{64},
{88},
{56}}

In[5]:=Mean/@data3//N
Out[5]={62.3636,62.9091,64.5455,65.0909,64.9091,
64.1818,65.6,64.25,65.1429,71.7143,
70.6667,74.,83.3333,80.,74.,64.,88.,56.}

V.Astanoff



  • Prev by Date: Re: averaging sublists of different lengths
  • Next by Date: Re: Frustrated with Plotting
  • Previous by thread: Re: averaging sublists of different lengths
  • Next by thread: Re: averaging sublists of different lengths