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

Peter Dalgaard p.dalgaard at biostat.ku.dk
Wed Nov 12 00:42:36 CET 2008

```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

```