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, [EMAIL PROTECTED]
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
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html