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

MathGroup Archive 2012

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

Search the Archive

Re: Removing rows from a table

  • To: mathgroup at smc.vnet.net
  • Subject: [mg128714] Re: Removing rows from a table
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Mon, 19 Nov 2012 19:17:19 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <k8bmlv$dgr$1@smc.vnet.net>

On Nov 18, 2:17 pm, Citzen90210 <peter_bo... at hotmail.com> wrote:
> Total nubie here and struggling!
>
> I have a dataset of approximately 100,000 records of data points recorded at 15 minute intervals.  Each row looks something like this:
>
> {"01/01/2010 06:15", 0.04375, 4.96188, 1.00885, 0, 0, 0}
>
> I've worked out how to parse the date column so that seems to be under control but now I have a list of date ranges that I need to remove from the dataset.  The date ranges to be removed look something like this:
>
> {{2010, 2, 1, 12, 0, 0.0}, {2010, 2, 15, 12, 0, 0.0}},
> {{2010, 7, 1, 12, 0, 0.0}, {2010, 7, 15, 12, 0, 0.0}}
>
> with the first column representing the start date of the block to be removed and the second column representing the end date of the block, multiple rows represent multiple blocks to be removed and the total number of blocks is variable.
>
> Ideally I'd like to be able to use Drop or Delete to remove the offending blocks of data but I want to be able to somehow feed the command with the date range table and have it remove the ranges all in one go.
>
> I'm not having much luck working this out for myself and would love to get a few pointers.

exclude = {
{{2010, 2, 1, 12, 0, 0.}, {2010, 2,15, 12, 0, 0.}},
{{2010, 7, 1, 12, 0, 0.}, {2010, 7,15, 12, 0, 0.}}};

(* Assume that each term at level 2 of 'exclude' is
   {y, m, d, h, m, s} for AbsoluteTime. *)

x = Interval @@ Map[AbsoluteTime, exclude, {2}];

(* Assume that the first term in each row of 'data' is
   {y, m, d, h, m, s} for AbsoluteTime. *)

Select[data, Not@IntervalMemberQ[x, AbsoluteTime@#[[1]]]& ]



  • Prev by Date: Re: Subscript on plus expression
  • Next by Date: Accurate PDE solution
  • Previous by thread: Re: Removing rows from a table
  • Next by thread: Re: Removing rows from a table