# Re: [R] R design (was "Variable passed to function not used in function in select)

From: Peter Dalgaard <p.dalgaard_at_biostat.ku.dk>
Date: Wed, 12 Nov 2008 00:42:36 +0100

Rolf Turner wrote:
>
> On 12/11/2008, at 11:29 AM, Peter Dalgaard wrote:
>

```>> Ben Bolker wrote:
>>
>>>
>>>   Sometime soon when I have the time and energy I will start
>>> campaigning for an additional "drop" argument to subset that
>>> does what one expects (!!??) with subsetted factor variables ...
>>
>> Not that one again! For at least one other value of one, the expectation
>> is the opposite: Factor levels do not go away just because they happen
>> not to be present in data.
>>
>> fct <- lapply(dd, is.factor)
>> dd[fct] <- lapply(dd[fct], "[", drop=TRUE)
>>
>> and begone with it...
```

>
> (Don't you mean ``be done with it''?)

I did mean as in "begone with the nuisance", but you're the native English speaker (to some ixtent, enniwhy...).

(Actually, the last line could have had lapply(dd[fct],factor), I just got confused about whether in would preserve the level order.)

> What would break if subset.default() were changed to:
>
> function (x, subset, drop=FALSE, ...)
> {
> if (!is.logical(subset))
> stop("'subset' must be logical")
> x[subset & !is.na(subset),drop=drop]
> }
>
> ???

Nothing, but Ben wants to fix (as in cat ;-) ) subset.data.frame() and drop= does otherwise there.

> data.frame(foo=factor(1:2,labels=c("M","F")))[1,,drop=FALSE]    foo
1 M
> data.frame(foo=factor(1:2,labels=c("M","F")))[1,,drop=TRUE] [1] M
Levels: M F

> cheers,
>
> Rolf
>
> ######################################################################
> Attention:This e-mail message is privileged and confidential. If you are
> not theintended recipient please delete the message and notify the
> sender.Any views or opinions presented are solely those of the author.
>
> This e-mail has been scanned and cleared by
> MailMarshalwww.marshalsoftware.com
> ######################################################################

```--
O__  ---- Peter Dalgaard             ุster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard_at_biostat.ku.dk)              FAX: (+45) 35327907

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help