Re: [R] Puzzled at ifelse()

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Tue 12 Jul 2005 - 21:58:40 EST

This is working exactly as documented. Nothing `breaks'!

What does the help page say?

      'ifelse' returns a value with the same shape as 'test' which is
      filled with elements selected from either 'yes' or 'no' depending
      on whether the element of 'test' is 'TRUE' or 'FALSE'.

'test' is of length one and true, so you got the first element of 'yes', which is a list as the first (and only) element of the answer.

On Tue, 12 Jul 2005, Ajay Narottam Shah wrote:

> I have a situation where this is fine:
>
> > if (length(x)>15) {
> clever <- rr.ATM(x, maxtrim=7)
> } else {
> clever <- rr.ATM(x)
> }
> > clever
> $ATM
> [1] 1848.929
>
> $sigma
> [1] 1.613415
>
> $trim
> [1] 0
>
> $lo
> [1] 1845.714
>
> $hi
> [1] 1852.143
>
> But this variant, using ifelse(), breaks:
>
> > clever <- ifelse(length(x)>15, rr.ATM(x, maxtrim=7), rr.ATM(x))
> > clever
> [[1]]
> [1] 1848.929
>
> What am I doing wrong?

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Tue Jul 12 22:08:56 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:33:32 EST