[R] Passing in Condtions into Object
David Winsemius
dwinsemius at comcast.net
Fri Sep 9 05:57:34 CEST 2011
On Sep 8, 2011, at 8:21 PM, Adam Pridgen wrote:
> Hello,
>
> I am trying to pass a conditional expression into an expression to be
> evaluated when ever an R statement is called. For example:
>
> get_unique_count <- function(df, select, field){
> uniqs <- unique(subset(df, select)[field])
> return (nrow(uniqs))
> }
>
>
> In this case select is a conditional statement year == 1980, and the
> function would be called in the following manner:
>
> library(ggplot2)
> get_unique_count(mpg, year==1980, 'manufacturer')
Borrowing heavily from subset.data.frame:
get.uniq <- function (x, logic.expr, field)
{
e <- substitute(logic.expr)
r <- eval(e, x, parent.frame())
if (!is.logical(r))
stop("'subset' must evaluate to logical")
r <- r & !is.na(r)
if (missing(field))
vars <- TRUE
else {
nl <- as.list(seq_along(x))
names(nl) <- names(x)
vars <- eval(substitute(field), nl, parent.frame())
}
uniqs <- unique(x[r, field, drop = FALSE])
NROW(uniqs)
}
>
> Thank for any help in advance,
>
> -- Adam
>
> ______________________________________________
> 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
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list