[R] Equivalent for Matematica function Which...
David Winsemius
dwinsemius at comcast.net
Tue Sep 29 21:00:04 CEST 2009
On Sep 29, 2009, at 2:36 PM, Jarek Jasiewicz wrote:
> well function arguments are in square brackets. z is result (new
> vector). I show Matematica syntax, but cannot explain what I expect.
> Sorry
> The example is wrong because it can be replaced by R cut function.
> The arguments are: condition,action.... and can be replaced by ste
> of ifelse formulas:
>
> if (x<10) x<-0.7
> else if (x<30 && x=>10) x<-x^2/(x-1)
> etc...
> but that solution is slow for vectors with millions of numbers
1)Slow? It shouldn't even work! The if { } else { } construct is for
program control, not for iterative testing and assignment. You should
be using ifelse(<cond>, <affirm-val>, <neg-val>) which is designed for
that purpose.
2) you should not be using "&&" unless you are working with a scalar.
Use "&".
Perhaps (minimally tested):
x <- 1:100
ifelse( x < 10, 0.7, ifelse( x<30 & x>=10, x^2/(x-1), NA))
(And the "x >= 10" , (I doubted that " =>" would be correct and
testing shows it does throw a syntax error), is not needed since you
would never get to that evaluation if x were < 10.
Note: the ifelse's can be only nested up to 7 levels if memory serves.
--
David
>
> thanks
>
> Jarek
>
> Erik Iverson pisze:
>> Hello,
>>
>>> I'm looking for equivalent of Matematica function "Which" which
>>> works as
>>> follows:
>>>
>>> z = Which[x<10,0.3, 10<=x<20,0.5, 20<=x<100,1]
>>>
>>> where x is a vector
>>>
>>
>> Unless someone happens to be a Mathematica user (very possible), I
>> don't know how we would answer the question. You give an example
>> of the function call, but not what the function arguments or return
>> value are.
>> There is an R function called "which", but what the Mathematica
>> "Which" is doing is entirely mysterious from your example. What is
>> in "z" for instance??
>>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list