Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: Delayed function does not behave as original input

  • To: mathgroup at smc.vnet.net
  • Subject: [mg97024] Re: [mg96992] Delayed function does not behave as original input
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Mon, 2 Mar 2009 05:23:21 -0500 (EST)
  • Reply-to: hanlonr at cox.net

Either start with a clean kernel or Clear dateDataMerge prior to its definition.

close = {52.25`, 52.`, 52.01`, 52.06`, 52.14`, 52.45`, 52.06`, 51.89`, 52.06`,
    52.05`};

dates = {{2009, 2, 26, 9, 30, 0}, {2009, 2, 26, 9, 31, 0}, {2009, 2, 26, 9, 
    32, 0}, {2009, 2, 26, 9, 33, 0}, {2009, 2, 26, 9, 34, 0}, {2009, 2, 26, 9,
     35, 0}, {2009, 2, 26, 9, 36, 0}, {2009, 2, 26, 9, 37, 0}, {2009, 2, 26, 
    9, 38, 0}, {2009, 2, 26, 9, 39, 0}};

closedates = Partition[Riffle[close, dates, {1, -1, 2}], 2];

Clear[dateDataMerge];

dateDataMerge[datedata_, ordinatedata_] := 
  Partition[Riffle[ordinatedata, datedata, {1, -1, 2}], 2];

dateDataMerge[dates, close] == closedates

True


Bob Hanlon

---- hayes.tyler at gmail.com wrote: 

=============
Hello All:

I am trying to make a simple function to Riffle two lists together for
a DateListPlot. I have attached an example below to show you what I am
trying to do. Clearly, I am missing something basic here, but cannot
seem to see what.

EXAMPLE CODE

close = {52.25`, 52.`, 52.01`, 52.06`, 52.14`, 52.45`, 52.06`, 51.89`,
    52.06`, 52.05`};

dates = {{2009, 2, 26, 9, 30, 0}, {2009, 2, 26, 9, 31, 0}, {2009, 2,
    26, 9, 32, 0}, {2009, 2, 26, 9, 33, 0}, {2009, 2, 26, 9, 34,
    0}, {2009, 2, 26, 9, 35, 0}, {2009, 2, 26, 9, 36, 0}, {2009, 2,
    26, 9, 37, 0}, {2009, 2, 26, 9, 38, 0}, {2009, 2, 26, 9, 39, 0}};

closedates = Partition[Riffle[close, dates, {1, -1, 2}], 2]

Out[178]= {{{2009, 2, 26, 9, 30, 0}, 52.25}, {{2009, 2, 26, 9, 31, 0},
   52.}, {{2009, 2, 26, 9, 32, 0}, 52.01}, {{2009, 2, 26, 9, 33, 0},
  52.06}, {{2009, 2, 26, 9, 34, 0}, 52.14}, {{2009, 2, 26, 9, 35, 0},
  52.45}, {{2009, 2, 26, 9, 36, 0}, 52.06}, {{2009, 2, 26, 9, 37, 0},
  51.89}, {{2009, 2, 26, 9, 38, 0}, 52.06}, {{2009, 2, 26, 9, 39, 0},
  52.05}}

(* The above is what I want *)

dateDataMerge[datedata_, ordinatedata_] :=
  Partition[Riffle[ordinatedata, datedata, {1, -1, 2}], 2];

closedatesbad = dateDataMerge[dates, close]

During evaluation of In[180]:= Riffle::list: List expected at position
1 in Riffle[52.25,2009,{1,-1,2}]. >>

During evaluation of In[180]:= Riffle::list: List expected at position
1 in Riffle[52.25,2009]. >>

During evaluation of In[180]:= Riffle::argtu: Riffle called with 1
argument; 2 or 3 arguments are expected. >>

During evaluation of In[180]:= Riffle::list: List expected at position
1 in Riffle[52.25,2,{1,-1,2}]. >>

During evaluation of In[180]:= General::stop: Further output of
Riffle::list will be suppressed during this calculation. >>


END OF EXAMPLE CODE

Any help is appreciated.

Cheers,

t.



  • Prev by Date: Re: "Do What I Mean" - a suggestion for improving
  • Next by Date: Re: Delayed function does not behave as original input
  • Previous by thread: Re: Delayed function does not behave as original input
  • Next by thread: Re: Delayed function does not behave as original input