Aliases: with with.default within within.list within.data.frame
Keywords: data programming
### ** Examples with(mtcars, mpg[cyl == 8 & disp > 350])
[1] 18.7 14.3 10.4 10.4 14.7 19.2 15.8
# is the same as, but nicer than mtcars$mpg[mtcars$cyl == 8 & mtcars$disp > 350]
[1] 18.7 14.3 10.4 10.4 14.7 19.2 15.8
require(stats); require(graphics) # examples from glm: 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))))
[[1]] Call: glm(formula = lot1 ~ log(u), family = Gamma) Deviance Residuals: Min 1Q Median 3Q Max -0.04008 -0.03756 -0.02637 0.02905 0.08641 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.0165544 0.0009275 -17.85 4.28e-07 *** log(u) 0.0153431 0.0004150 36.98 2.75e-09 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for Gamma family taken to be 0.002446059) Null deviance: 3.51283 on 8 degrees of freedom Residual deviance: 0.01673 on 7 degrees of freedom AIC: 37.99 Number of Fisher Scoring iterations: 3 [[2]] Call: glm(formula = lot2 ~ log(u), family = Gamma) Deviance Residuals: Min 1Q Median 3Q Max -0.05574 -0.02925 0.01030 0.01714 0.06371 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.0239085 0.0013265 -18.02 4.00e-07 *** log(u) 0.0235992 0.0005768 40.91 1.36e-09 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for Gamma family taken to be 0.001813354) Null deviance: 3.118557 on 8 degrees of freedom Residual deviance: 0.012672 on 7 degrees of freedom AIC: 27.032 Number of Fisher Scoring iterations: 3
aq <- within(airquality, { # Notice that multiple vars can be changed lOzone <- log(Ozone) Month <- factor(month.abb[Month]) cTemp <- round((Temp - 32) * 5/9, 1) # From Fahrenheit to Celsius S.cT <- Solar.R / cTemp # using the newly created variable rm(Day, Temp) }) head(aq)
Ozone Solar.R Wind Month S.cT cTemp lOzone 1 41 190 7.4 May 9.793814 19.4 3.713572 2 36 118 8.0 May 5.315315 22.2 3.583519 3 12 149 12.6 May 6.394850 23.3 2.484907 4 18 313 11.5 May 18.742515 16.7 2.890372 5 NA NA 14.3 May NA 13.3 NA 6 28 NA 14.9 May NA 18.9 3.332205
# example from boxplot: 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"))