[R] stupid R tricks

David Winsemius dwinsemius at comcast.net
Sun Nov 7 20:06:35 CET 2010


On Nov 7, 2010, at 12:25 PM, David Winsemius wrote:

>
> On Nov 7, 2010, at 11:40 AM, Carl Witthoft wrote:
>
>> Hi all,
>> Just thought I'd post this (maybe) helpful tool I wrote.  For  
>> people like me who are bad at keeping a clean environment, it's a  
>> time-saver.
>>
>> #simple command to get only one type of object in current environment
>> lstype<-function(type='closure'){
>> 	inlist<-ls(.GlobalEnv)
>> 	if (type=='function') type <-'closure'
>> 	typelist<-sapply(sapply(inlist,get),typeof)
>> 	return(names(typelist[typelist==type]))
>> }
>
> As a fellow messy-enviromnetalist that was useful. Here's a similar  
> function that returns a vector of object names belonging to a  
> particular (single) class:
>
> > getclass <- function(cls) ls(envir=.GlobalEnv)[
>            sapply(ls(envir=.GlobalEnv), function(x)  
> class(eval(parse(text=x))) ) == cls   ]

Here is a version that substitutes get(...) for eval(parse(text= ...)  
making it a bit less subject to "fortune hunters" and removes the  
limitation to one-class objects:

getclass <- function(cls="data.frame") ls(envir=.GlobalEnv)[
                sapply(
                    sapply(ls(envir=.GlobalEnv), function(x)  
class(get(x)) ),
                             function(y) cls %in% y)        ]

-- 
David.

>
>
> > getclass("data.frame")
> [1] "d"       "df"      "set1HLI"
> > getclass("function")
> [1] "capture.ps"  "getclass"    "getsizes"    "getweek"      
> "is.defined"
> [6] "maintainer"  "myfunction"  "rd.txt"      "rhelpSearch"  
> "write.clip"
>
> It is not designed to identify multi-class objects, so it would miss  
> a class of "lm" if there were 2 members in a class vector.
>>
>> Carl
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list