Rev 27716 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{with}\alias{with}\alias{with.default}\title{Evaluate an Expression in a Data Environment}\description{Evaluate an \R expression in an environment constructed from data.}\usage{with(data, expr, \dots)%\method{with}{default}(data, expr, \dots)}\arguments{\item{data}{data to use for constructing an environment. For thedefault method this may be an environment, a list, a data frame,or an integer as in \code{sys.call}.}\item{expr}{expression to evaluate.}\item{\dots}{arguments to be passed to future methods.}}\details{\code{with} is a generic function that evaluates \code{expr} in alocal environment constructed from \code{data}. The environment hasthe caller's environment as its parent. This is useful forsimplifying calls to modeling functions.Note that assignments within \code{expr} take place in the constructedenvironment and not in the user's workspace.}\seealso{\code{\link{evalq}}, \code{\link{attach}}.}\examples{require(stats); require(graphics)#examples from glm:\dontrun{library(MASS)data(anorexia)with(anorexia, {anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),family = gaussian)summary(anorex.1)})}with(data.frame(u = c(5,10,15,20,30,40,60,80,100),lot1 = c(118,58,42,35,27,25,21,19,18),lot2 = c(69,35,26,21,18,16,13,12,12)),list(summary(glm(lot1 ~ log(u), family = Gamma)),summary(glm(lot2 ~ log(u), family = Gamma))))# example from boxplot:data(ToothGrowth)with(ToothGrowth, {boxplot(len ~ dose, boxwex = 0.25, at = 1:3 - 0.2,subset = (supp == "VC"), col = "yellow",main = "Guinea Pigs' Tooth Growth",xlab = "Vitamin C dose mg",ylab = "tooth length", ylim = c(0,35))boxplot(len ~ dose, add = TRUE, boxwex = 0.25, at = 1:3 + 0.2,subset = supp == "OJ", col = "orange")legend(2, 9, c("Ascorbic acid", "Orange juice"),fill = c("yellow", "orange"))})# alternate form that avoids subset argument:with(subset(ToothGrowth, supp == "VC"),boxplot(len ~ dose, boxwex = 0.25, at = 1:3 - 0.2,col = "yellow", main = "Guinea Pigs' Tooth Growth",xlab = "Vitamin C dose mg",ylab = "tooth length", ylim = c(0,35)))with(subset(ToothGrowth, supp == "OJ"),boxplot(len ~ dose, add = TRUE, boxwex = 0.25, at = 1:3 + 0.2,col = "orange"))legend(2, 9, c("Ascorbic acid", "Orange juice"),fill = c("yellow", "orange"))}\keyword{data}\keyword{programming}