|
[Date Index]
[Thread Index]
[Author Index]
Re: Picking Off Lists That Have No Numbers
- To: mathgroup at smc.vnet.net
- Subject: [mg99548] Re: Picking Off Lists That Have No Numbers
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Thu, 7 May 2009 06:39:41 -0400 (EDT)
- References: <gtrl29$1o5$1@smc.vnet.net>
Gregory Lypny wrote:
> Hi everyone,
>
> In a previous thread, "Select and Cases Give Different Answers," I
> discussed a bug, confirmed by others on the list and which Daniel
> Lichtblau of Wolfram said has been fixed in the development kernel,
> and I wonder whether we have the same problem here.
>
> I want to know if a list has no numbers in it. Here I get the wrong
> answer for the first list.
>
> FreeQ[#, _Number] & /@ {{"NA", 2.3, 3/8}, {"NA", "NA", "NA"}}
>
> yields {True, True}
> And same here.
>
> MemberQ[#, _Number] & /@ {{"NA", 2.3, 3/8}, {"NA", "NA", "NA"}}
>
> {False, False}
The pattern _Number matches expressions whose head is Number. Number
usually not used as the head of anything in Mathematica.
Head /@ {"NA", 2.3, 3/8}
{String, Real, Rational}
Try _?NumberQ instead.
>
> If I use Real or Rational for the criterion, I get the right answers,
> but that's no good if you have some lists that are mixtures of strings
> and reals and others that are mixtures of strings and rationals.
>
> FreeQ[#, _Real] && FreeQ[#, _Rational]
> & /@ {{"NA", 2.3, 3/8}, {"NA", "NA", "NA"}, {"NA", 2.3, "NA"}, {"NA",
> 2.3, 9.4}}
>
> Now this works.
>
> Count[#, _String] == Length[#] & /@ {{"NA", 2.3, 3/8}, {"NA", "NA",
> "NA"}}
>
> {False, True}
>
> But this does not!
>
> Count[#, _Number] == 0 & /@ {{"NA", 2.3, 3/8}, {"NA", "NA", "NA"}}
>
> {True, True}
>
> I don't mean to be a pain, but it is important in my sample selection
> procedures to be able to make the distinction between strings and
> numbers, so I'd be interested in knowing whether I'm misunderstanding
> properties such as Number or Numeric (don't really know the
> difference) or this is a bug.
>
Again, _SomeHead matches expressions with head SomeHead. All expression
have one unique head, so if something is e.g. Rational it cannot be Real
or something else at the same time.
Prev by Date:
Re: Re: Reading csv with ;
Next by Date:
Re: derivative of a well-behaved function
Previous by thread:
Re: Picking Off Lists That Have No Numbers
Next by thread:
Re: Picking Off Lists That Have No Numbers
|