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

MathGroup Archive 2005

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

Search the Archive

Re: Dropping Similar Numbers from List

  • To: mathgroup at smc.vnet.net
  • Subject: [mg60577] Re: [mg60564] Dropping Similar Numbers from List
  • From: "Owen, HL \(Hywel\)" <h.l.owen at dl.ac.uk>
  • Date: Tue, 20 Sep 2005 06:16:20 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

You're right that SetAccuracy and SetPrecision don't have the desired
effect, e.g.

mylist = {1.234, 1.234, 1.234, 1.235, 1.235, 1.240}

Union[mylist]
{1.234, 1.235, 1.24}

SetAccuracy[mylist, 3]
{1.23, 1.23, 1.23, 1.24, 1.24, 1.24}

SetAccuracy[mylist, 3] // Union
{1.23, 1.24, 1.24}

Instead I wrote a function RoundOff which does what you want:

RoundOff[n_, len_] := N[FromDigits[RealDigits[n, 10, len]]]

Union[RoundOff[#, 3] & /@ mylist]
{1.23, 1.24}

There's probably better ways to do this. You can probably also make
RoundOff thread better over lists.

-------------------------------------------
Hywel Owen h.owen at dl.ac.uk
Accelerator Science and Technology Centre
CCLRC Daresbury Laboratory
United Kingdom
Tel/Fax: +44 1925 603797/603192
-------------------------------------------
"Errors using inadequate data are much less than those using no data at
all."
  -- Charles Babbage 
 

> -----Original Message-----
> From: andre [mailto:erasmus.the.giant at gmail.com] 
To: mathgroup at smc.vnet.net
> Sent: 20 September 2005 10:20
> Subject: [mg60577] [mg60564] Dropping Similar Numbers from List
> 
> My data set has some numbers which differ by a small amount, 
> say one part in 10^-15, that I don't want to appear more than 
> once.  If they were identical, I would just use Union[data] 
> and be finished.  Is there a way to set a tollerance for the 
> Union function?
> 
> I tried to use SetPrecision to get rid of the unwanted extra 
> digits, but Union[SetPrecision[data,n]] gives the same result 
> as Union[data].
> What exactly does SetPrecision do?  It seems that it's not 
> just dropping the digits beyond the limit I set.
> 
> Andre
> 
> 
> 


  • Prev by Date: Re: 'Changing' parameters in an expression
  • Next by Date: Re: Re: another Bug in Reduce ?
  • Previous by thread: Dropping Similar Numbers from List
  • Next by thread: Re: Dropping Similar Numbers from List