[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



More information about the R-help mailing list