Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Intersection of sublists on date and making a 2D list from a 3D one

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109927] Re: Intersection of sublists on date and making a 2D list from a 3D one
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Sun, 23 May 2010 03:17:20 -0400 (EDT)

On 5/22/10 at 12:42 AM, warsaw95826 at mypacks.net (Garapata) wrote:

>I have a list with the following dimensionality:

>   Dimensions[list]
>   Dimensions[list[[1]]]
>   Dimensions[list[[2]]]
>   Dimensions[list[[3]]]

You can get exactly the same result using Map (shorthand /@) here. That is

Dimensions[list[
Dimensions/@list

yields the same result as you posted

>I think of it as 3 groups, each with a different number of rows, but
>each of these rows has 3 columns.  Of the 3 columns, the third has
>dates in a DateList format.

>So, I can simulate the list with the following:

>a = Table[{RandomInteger[10], RandomInteger[10], DatePlus[{2010, 1,
>1}, RandomInteger[{1, 150}]]}, {1}, {191}]; list = Join[a[[All, 4 ;;
>133, All]], a[[All, 1 ;; 126, All]], a];

>Ultimately I'd like to find all the rows that intersect on the same
>dates and put the whole thing into a 2 dimensional structure that
>would have the following columns:

>commonDates, group1Data1, group1Data2, group2Data1, group2Data2,
>group3Data1, group3Data2,

>I can use Intersect[] to find the common dates:

>Intersection[list[[1, All,3]], list[[2, All, 3]], list[[3, All,
>3]]];

>but this seems a bit cumbersome given I may have a greater or lesser
>number of groups.  Seems like I need to start this in a better way,
>but since Intersection[] doesn't take a list of lists I don't know
>where to take this.

much less cumbersome is using Map and Apply, that is

commonDates=Intersection@@(#[[All,3]]&/@list);

Once you have the common dates, you can select the desired data using Cases as follows

Cases[SortBy[#,Last],{__,_?(MemberQ[commonDates,#]&)]]&/@list




  • Prev by Date: Re: SQLExecute with an argument
  • Next by Date: Re: Intersection of sublists on date and making a 2D list from a 3D
  • Previous by thread: Intersection of sublists on date and making a 2D list from a 3D one
  • Next by thread: Re: Numerical solution of differential equation