R Under development (unstable) (2018-10-14 r75439) -- "Unsuffered Consequences"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> pkgname <- "datasets"
> source(file.path(R.home("share"), "R", "examples-header.R"))
> options(warn = 1)
> library('datasets')
> 
> base::assign(".oldSearch", base::search(), pos = 'CheckExEnv')
> base::assign(".old_wd", base::getwd(), pos = 'CheckExEnv')
> cleanEx()
> nameEx("AirPassengers")
> ### * AirPassengers
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: AirPassengers
> ### Title: Monthly Airline Passenger Numbers 1949-1960
> ### Aliases: AirPassengers
> ### Keywords: datasets
> 
> ### ** Examples
> 
> ## Not run: 
> ##D ## These are quite slow and so not run by example(AirPassengers)
> ##D 
> ##D ## The classic 'airline model', by full ML
> ##D (fit <- arima(log10(AirPassengers), c(0, 1, 1),
> ##D               seasonal = list(order = c(0, 1, 1), period = 12)))
> ##D update(fit, method = "CSS")
> ##D update(fit, x = window(log10(AirPassengers), start = 1954))
> ##D pred <- predict(fit, n.ahead = 24)
> ##D tl <- pred$pred - 1.96 * pred$se
> ##D tu <- pred$pred + 1.96 * pred$se
> ##D ts.plot(AirPassengers, 10^tl, 10^tu, log = "y", lty = c(1, 2, 2))
> ##D 
> ##D ## full ML fit is the same if the series is reversed, CSS fit is not
> ##D ap0 <- rev(log10(AirPassengers))
> ##D attributes(ap0) <- attributes(AirPassengers)
> ##D arima(ap0, c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12))
> ##D arima(ap0, c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12),
> ##D       method = "CSS")
> ##D 
> ##D ## Structural Time Series
> ##D ap <- log10(AirPassengers) - 2
> ##D (fit <- StructTS(ap, type = "BSM"))
> ##D par(mfrow = c(1, 2))
> ##D plot(cbind(ap, fitted(fit)), plot.type = "single")
> ##D plot(cbind(ap, tsSmooth(fit)), plot.type = "single")
> ## End(Not run)
> 
> 
> cleanEx()
> nameEx("BOD")
> ### * BOD
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: BOD
> ### Title: Biochemical Oxygen Demand
> ### Aliases: BOD
> ### Keywords: datasets
> 
> ### ** Examples
> 
> ## Don't show: 
> options(show.nls.convergence=FALSE)
> old <- options(digits = 5)
> ## End(Don't show)
> require(stats)
> # simplest form of fitting a first-order model to these data
> fm1 <- nls(demand ~ A*(1-exp(-exp(lrc)*Time)), data = BOD,
+    start = c(A = 20, lrc = log(.35)))
> coef(fm1)
       A      lrc 
19.14258 -0.63282 
> fm1
Nonlinear regression model
  model: demand ~ A * (1 - exp(-exp(lrc) * Time))
   data: BOD
     A    lrc 
19.143 -0.633 
 residual sum-of-squares: 26
> # using the plinear algorithm
> fm2 <- nls(demand ~ (1-exp(-exp(lrc)*Time)), data = BOD,
+    start = c(lrc = log(.35)), algorithm = "plinear", trace = TRUE)
32.946 :  -1.0498 22.1260
25.992 :  -0.62572 19.10319
25.99 :  -0.6327 19.1419
25.99 :  -0.63282 19.14256
> # using a self-starting model
> fm3 <- nls(demand ~ SSasympOrig(Time, A, lrc), data = BOD)
> summary(fm3)

Formula: demand ~ SSasympOrig(Time, A, lrc)

Parameters:
    Estimate Std. Error t value Pr(>|t|)   
A     19.143      2.496    7.67   0.0016 **
lrc   -0.633      0.382   -1.65   0.1733   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.55 on 4 degrees of freedom

> ## Don't show: 
> options(old)
> ## End(Don't show)
> 
> 
> 
> cleanEx()
> nameEx("ChickWeight")
> ### * ChickWeight
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: ChickWeight
> ### Title: Weight versus age of chicks on different diets
> ### Aliases: ChickWeight
> ### Keywords: datasets
> 
> ### ** Examples
> 
> 
> cleanEx()
> nameEx("DNase")
> ### * DNase
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: DNase
> ### Title: Elisa assay of DNase
> ### Aliases: DNase
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ## Don't show: 
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> coplot(density ~ conc | Run, data = DNase,
+        show.given = FALSE, type = "b")
> coplot(density ~ log(conc) | Run, data = DNase,
+        show.given = FALSE, type = "b")
> ## fit a representative run
> fm1 <- nls(density ~ SSlogis( log(conc), Asym, xmid, scal ),
+     data = DNase, subset = Run == 1)
> ## compare with a four-parameter logistic
> fm2 <- nls(density ~ SSfpl( log(conc), A, B, xmid, scal ),
+     data = DNase, subset = Run == 1)
> summary(fm2)

Formula: density ~ SSfpl(log(conc), A, B, xmid, scal)

Parameters:
      Estimate Std. Error t value Pr(>|t|)    
A    -0.007897   0.017200  -0.459    0.654    
B     2.377239   0.109516  21.707 5.35e-11 ***
xmid  1.507403   0.102080  14.767 4.65e-09 ***
scal  1.062579   0.056996  18.643 3.16e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.01981 on 12 degrees of freedom

> anova(fm1, fm2)
Analysis of Variance Table

Model 1: density ~ SSlogis(log(conc), Asym, xmid, scal)
Model 2: density ~ SSfpl(log(conc), A, B, xmid, scal)
  Res.Df Res.Sum Sq Df     Sum Sq F value Pr(>F)
1     13  0.0047896                             
2     12  0.0047073  1 8.2314e-05  0.2098 0.6551
> 
> 
> 
> cleanEx()
> nameEx("Formaldehyde")
> ### * Formaldehyde
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Formaldehyde
> ### Title: Determination of Formaldehyde
> ### Aliases: Formaldehyde
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> plot(optden ~ carb, data = Formaldehyde,
+      xlab = "Carbohydrate (ml)", ylab = "Optical Density",
+      main = "Formaldehyde data", col = 4, las = 1)
> abline(fm1 <- lm(optden ~ carb, data = Formaldehyde))
> summary(fm1)

Call:
lm(formula = optden ~ carb, data = Formaldehyde)

Residuals:
        1         2         3         4         5         6 
-0.006714  0.001029  0.002771  0.007143  0.007514 -0.011743 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.005086   0.007834   0.649    0.552    
carb        0.876286   0.013535  64.744 3.41e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.008649 on 4 degrees of freedom
Multiple R-squared:  0.999,	Adjusted R-squared:  0.9988 
F-statistic:  4192 on 1 and 4 DF,  p-value: 3.409e-07

> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0))
> plot(fm1)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("HairEyeColor")
> ### * HairEyeColor
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: HairEyeColor
> ### Title: Hair and Eye Color of Statistics Students
> ### Aliases: HairEyeColor
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> ## Full mosaic
> mosaicplot(HairEyeColor)
> ## Aggregate over sex (as in Snee's original data)
> x <- apply(HairEyeColor, c(1, 2), sum)
> x
       Eye
Hair    Brown Blue Hazel Green
  Black    68   20    15     5
  Brown   119   84    54    29
  Red      26   17    14    14
  Blond     7   94    10    16
> mosaicplot(x, main = "Relation between hair and eye color")
> 
> 
> 
> cleanEx()
> nameEx("Harman23.cor")
> ### * Harman23.cor
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Harman23.cor
> ### Title: Harman Example 2.3
> ### Aliases: Harman23.cor
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats)
> (Harman23.FA <- factanal(factors = 1, covmat = Harman23.cor))

Call:
factanal(factors = 1, covmat = Harman23.cor)

Uniquenesses:
        height       arm.span        forearm      lower.leg         weight 
         0.158          0.135          0.190          0.187          0.760 
bitro.diameter    chest.girth    chest.width 
         0.829          0.877          0.801 

Loadings:
               Factor1
height         0.918  
arm.span       0.930  
forearm        0.900  
lower.leg      0.902  
weight         0.490  
bitro.diameter 0.413  
chest.girth    0.351  
chest.width    0.446  

               Factor1
SS loadings      4.064
Proportion Var   0.508

Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 611.44 on 20 degrees of freedom.
The p-value is 1.12e-116 
> for(factors in 2:4) print(update(Harman23.FA, factors = factors))

Call:
factanal(factors = factors, covmat = Harman23.cor)

Uniquenesses:
        height       arm.span        forearm      lower.leg         weight 
         0.170          0.107          0.166          0.199          0.089 
bitro.diameter    chest.girth    chest.width 
         0.364          0.416          0.537 

Loadings:
               Factor1 Factor2
height         0.865   0.287  
arm.span       0.927   0.181  
forearm        0.895   0.179  
lower.leg      0.859   0.252  
weight         0.233   0.925  
bitro.diameter 0.194   0.774  
chest.girth    0.134   0.752  
chest.width    0.278   0.621  

               Factor1 Factor2
SS loadings      3.335   2.617
Proportion Var   0.417   0.327
Cumulative Var   0.417   0.744

Test of the hypothesis that 2 factors are sufficient.
The chi square statistic is 75.74 on 13 degrees of freedom.
The p-value is 6.94e-11 

Call:
factanal(factors = factors, covmat = Harman23.cor)

Uniquenesses:
        height       arm.span        forearm      lower.leg         weight 
         0.127          0.005          0.193          0.157          0.090 
bitro.diameter    chest.girth    chest.width 
         0.359          0.411          0.490 

Loadings:
               Factor1 Factor2 Factor3
height          0.886   0.267  -0.130 
arm.span        0.937   0.195   0.280 
forearm         0.874   0.188         
lower.leg       0.877   0.230  -0.145 
weight          0.242   0.916  -0.106 
bitro.diameter  0.193   0.777         
chest.girth     0.137   0.755         
chest.width     0.261   0.646   0.159 

               Factor1 Factor2 Factor3
SS loadings      3.379   2.628   0.162
Proportion Var   0.422   0.329   0.020
Cumulative Var   0.422   0.751   0.771

Test of the hypothesis that 3 factors are sufficient.
The chi square statistic is 22.81 on 7 degrees of freedom.
The p-value is 0.00184 

Call:
factanal(factors = factors, covmat = Harman23.cor)

Uniquenesses:
        height       arm.span        forearm      lower.leg         weight 
         0.137          0.005          0.191          0.116          0.138 
bitro.diameter    chest.girth    chest.width 
         0.283          0.178          0.488 

Loadings:
               Factor1 Factor2 Factor3 Factor4
height          0.879   0.277          -0.115 
arm.span        0.937   0.194           0.277 
forearm         0.875   0.191                 
lower.leg       0.887   0.209   0.135  -0.188 
weight          0.246   0.882   0.111  -0.109 
bitro.diameter  0.187   0.822                 
chest.girth     0.117   0.729   0.526         
chest.width     0.263   0.644           0.141 

               Factor1 Factor2 Factor3 Factor4
SS loadings      3.382   2.595   0.323   0.165
Proportion Var   0.423   0.324   0.040   0.021
Cumulative Var   0.423   0.747   0.787   0.808

Test of the hypothesis that 4 factors are sufficient.
The chi square statistic is 4.63 on 2 degrees of freedom.
The p-value is 0.0988 
> 
> 
> 
> cleanEx()
> nameEx("Harman74.cor")
> ### * Harman74.cor
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Harman74.cor
> ### Title: Harman Example 7.4
> ### Aliases: Harman74.cor
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats)
> (Harman74.FA <- factanal(factors = 1, covmat = Harman74.cor))

Call:
factanal(factors = 1, covmat = Harman74.cor)

Uniquenesses:
      VisualPerception                  Cubes         PaperFormBoard 
                 0.677                  0.866                  0.830 
                 Flags     GeneralInformation  PargraphComprehension 
                 0.768                  0.487                  0.491 
    SentenceCompletion     WordClassification            WordMeaning 
                 0.500                  0.514                  0.474 
              Addition                   Code           CountingDots 
                 0.818                  0.731                  0.824 
StraightCurvedCapitals        WordRecognition      NumberRecognition 
                 0.681                  0.833                  0.863 
     FigureRecognition           ObjectNumber           NumberFigure 
                 0.775                  0.812                  0.778 
            FigureWord              Deduction       NumericalPuzzles 
                 0.816                  0.612                  0.676 
      ProblemReasoning       SeriesCompletion     ArithmeticProblems 
                 0.619                  0.524                  0.593 

Loadings:
                       Factor1
VisualPerception       0.569  
Cubes                  0.366  
PaperFormBoard         0.412  
Flags                  0.482  
GeneralInformation     0.716  
PargraphComprehension  0.713  
SentenceCompletion     0.707  
WordClassification     0.697  
WordMeaning            0.725  
Addition               0.426  
Code                   0.519  
CountingDots           0.419  
StraightCurvedCapitals 0.565  
WordRecognition        0.408  
NumberRecognition      0.370  
FigureRecognition      0.474  
ObjectNumber           0.434  
NumberFigure           0.471  
FigureWord             0.429  
Deduction              0.623  
NumericalPuzzles       0.569  
ProblemReasoning       0.617  
SeriesCompletion       0.690  
ArithmeticProblems     0.638  

               Factor1
SS loadings      7.438
Proportion Var   0.310

Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 622.91 on 252 degrees of freedom.
The p-value is 2.28e-33 
> for(factors in 2:5) print(update(Harman74.FA, factors = factors))

Call:
factanal(factors = factors, covmat = Harman74.cor)

Uniquenesses:
      VisualPerception                  Cubes         PaperFormBoard 
                 0.650                  0.864                  0.844 
                 Flags     GeneralInformation  PargraphComprehension 
                 0.778                  0.375                  0.316 
    SentenceCompletion     WordClassification            WordMeaning 
                 0.319                  0.503                  0.258 
              Addition                   Code           CountingDots 
                 0.670                  0.608                  0.581 
StraightCurvedCapitals        WordRecognition      NumberRecognition 
                 0.567                  0.832                  0.850 
     FigureRecognition           ObjectNumber           NumberFigure 
                 0.743                  0.770                  0.625 
            FigureWord              Deduction       NumericalPuzzles 
                 0.792                  0.629                  0.579 
      ProblemReasoning       SeriesCompletion     ArithmeticProblems 
                 0.634                  0.539                  0.553 

Loadings:
                       Factor1 Factor2
VisualPerception       0.506   0.306  
Cubes                  0.304   0.209  
PaperFormBoard         0.297   0.260  
Flags                  0.327   0.339  
GeneralInformation     0.240   0.753  
PargraphComprehension  0.171   0.809  
SentenceCompletion     0.163   0.809  
WordClassification     0.344   0.615  
WordMeaning            0.148   0.849  
Addition               0.563   0.115  
Code                   0.591   0.207  
CountingDots           0.647          
StraightCurvedCapitals 0.612   0.241  
WordRecognition        0.315   0.263  
NumberRecognition      0.328   0.205  
FigureRecognition      0.457   0.218  
ObjectNumber           0.431   0.209  
NumberFigure           0.601   0.116  
FigureWord             0.399   0.222  
Deduction              0.379   0.477  
NumericalPuzzles       0.604   0.237  
ProblemReasoning       0.390   0.462  
SeriesCompletion       0.486   0.474  
ArithmeticProblems     0.544   0.389  

               Factor1 Factor2
SS loadings      4.573   4.548
Proportion Var   0.191   0.190
Cumulative Var   0.191   0.380

Test of the hypothesis that 2 factors are sufficient.
The chi square statistic is 420.24 on 229 degrees of freedom.
The p-value is 2.01e-13 

Call:
factanal(factors = factors, covmat = Harman74.cor)

Uniquenesses:
      VisualPerception                  Cubes         PaperFormBoard 
                 0.500                  0.793                  0.662 
                 Flags     GeneralInformation  PargraphComprehension 
                 0.694                  0.352                  0.316 
    SentenceCompletion     WordClassification            WordMeaning 
                 0.300                  0.502                  0.256 
              Addition                   Code           CountingDots 
                 0.200                  0.586                  0.494 
StraightCurvedCapitals        WordRecognition      NumberRecognition 
                 0.569                  0.838                  0.848 
     FigureRecognition           ObjectNumber           NumberFigure 
                 0.643                  0.780                  0.635 
            FigureWord              Deduction       NumericalPuzzles 
                 0.788                  0.590                  0.580 
      ProblemReasoning       SeriesCompletion     ArithmeticProblems 
                 0.597                  0.498                  0.500 

Loadings:
                       Factor1 Factor2 Factor3
VisualPerception        0.176   0.656   0.198 
Cubes                   0.122   0.428         
PaperFormBoard          0.145   0.563         
Flags                   0.239   0.487   0.107 
GeneralInformation      0.745   0.191   0.237 
PargraphComprehension   0.780   0.249   0.118 
SentenceCompletion      0.802   0.175   0.160 
WordClassification      0.571   0.327   0.256 
WordMeaning             0.821   0.248         
Addition                0.162  -0.118   0.871 
Code                    0.198   0.219   0.572 
CountingDots                    0.179   0.688 
StraightCurvedCapitals  0.190   0.381   0.499 
WordRecognition         0.231   0.253   0.210 
NumberRecognition       0.158   0.299   0.195 
FigureRecognition       0.108   0.557   0.186 
ObjectNumber            0.178   0.267   0.342 
NumberFigure                    0.427   0.424 
FigureWord              0.167   0.355   0.240 
Deduction               0.392   0.472   0.181 
NumericalPuzzles        0.178   0.406   0.473 
ProblemReasoning        0.382   0.473   0.182 
SeriesCompletion        0.379   0.528   0.283 
ArithmeticProblems      0.377   0.226   0.554 

               Factor1 Factor2 Factor3
SS loadings      3.802   3.488   3.186
Proportion Var   0.158   0.145   0.133
Cumulative Var   0.158   0.304   0.436

Test of the hypothesis that 3 factors are sufficient.
The chi square statistic is 295.59 on 207 degrees of freedom.
The p-value is 5.12e-05 

Call:
factanal(factors = factors, covmat = Harman74.cor)

Uniquenesses:
      VisualPerception                  Cubes         PaperFormBoard 
                 0.438                  0.780                  0.644 
                 Flags     GeneralInformation  PargraphComprehension 
                 0.651                  0.352                  0.312 
    SentenceCompletion     WordClassification            WordMeaning 
                 0.283                  0.485                  0.257 
              Addition                   Code           CountingDots 
                 0.240                  0.551                  0.435 
StraightCurvedCapitals        WordRecognition      NumberRecognition 
                 0.491                  0.646                  0.696 
     FigureRecognition           ObjectNumber           NumberFigure 
                 0.549                  0.598                  0.593 
            FigureWord              Deduction       NumericalPuzzles 
                 0.762                  0.592                  0.583 
      ProblemReasoning       SeriesCompletion     ArithmeticProblems 
                 0.601                  0.497                  0.500 

Loadings:
                       Factor1 Factor2 Factor3 Factor4
VisualPerception        0.160   0.689   0.187   0.160 
Cubes                   0.117   0.436                 
PaperFormBoard          0.137   0.570           0.110 
Flags                   0.233   0.527                 
GeneralInformation      0.739   0.185   0.213   0.150 
PargraphComprehension   0.767   0.205           0.233 
SentenceCompletion      0.806   0.197   0.153         
WordClassification      0.569   0.339   0.242   0.132 
WordMeaning             0.806   0.201           0.227 
Addition                0.167  -0.118   0.831   0.166 
Code                    0.180   0.120   0.512   0.374 
CountingDots                    0.210   0.716         
StraightCurvedCapitals  0.188   0.438   0.525         
WordRecognition         0.197                   0.553 
NumberRecognition       0.122   0.116           0.520 
FigureRecognition               0.408           0.525 
ObjectNumber            0.142           0.219   0.574 
NumberFigure                    0.293   0.336   0.456 
FigureWord              0.148   0.239   0.161   0.365 
Deduction               0.378   0.402   0.118   0.301 
NumericalPuzzles        0.175   0.381   0.438   0.223 
ProblemReasoning        0.366   0.399   0.123   0.301 
SeriesCompletion        0.369   0.500   0.244   0.239 
ArithmeticProblems      0.370   0.158   0.496   0.304 

               Factor1 Factor2 Factor3 Factor4
SS loadings      3.647   2.872   2.657   2.290
Proportion Var   0.152   0.120   0.111   0.095
Cumulative Var   0.152   0.272   0.382   0.478

Test of the hypothesis that 4 factors are sufficient.
The chi square statistic is 226.68 on 186 degrees of freedom.
The p-value is 0.0224 

Call:
factanal(factors = factors, covmat = Harman74.cor)

Uniquenesses:
      VisualPerception                  Cubes         PaperFormBoard 
                 0.450                  0.781                  0.639 
                 Flags     GeneralInformation  PargraphComprehension 
                 0.649                  0.357                  0.288 
    SentenceCompletion     WordClassification            WordMeaning 
                 0.277                  0.485                  0.262 
              Addition                   Code           CountingDots 
                 0.215                  0.386                  0.444 
StraightCurvedCapitals        WordRecognition      NumberRecognition 
                 0.256                  0.639                  0.706 
     FigureRecognition           ObjectNumber           NumberFigure 
                 0.550                  0.614                  0.596 
            FigureWord              Deduction       NumericalPuzzles 
                 0.764                  0.521                  0.564 
      ProblemReasoning       SeriesCompletion     ArithmeticProblems 
                 0.580                  0.442                  0.478 

Loadings:
                       Factor1 Factor2 Factor3 Factor4 Factor5
VisualPerception        0.161   0.658   0.136   0.182   0.199 
Cubes                   0.113   0.435           0.107         
PaperFormBoard          0.135   0.562           0.107   0.116 
Flags                   0.231   0.533                         
GeneralInformation      0.736   0.188   0.192   0.162         
PargraphComprehension   0.775   0.187           0.251   0.113 
SentenceCompletion      0.809   0.208   0.136                 
WordClassification      0.568   0.348   0.223   0.131         
WordMeaning             0.800   0.215           0.224         
Addition                0.175  -0.100   0.844   0.176         
Code                    0.185           0.438   0.451   0.426 
CountingDots                    0.222   0.690   0.101   0.140 
StraightCurvedCapitals  0.186   0.425   0.458           0.559 
WordRecognition         0.197                   0.557         
NumberRecognition       0.121   0.130           0.508         
FigureRecognition               0.400           0.529         
ObjectNumber            0.145           0.208   0.562         
NumberFigure                    0.306   0.325   0.452         
FigureWord              0.147   0.242   0.145   0.364         
Deduction               0.370   0.452   0.139   0.287  -0.190 
NumericalPuzzles        0.170   0.402   0.439   0.230         
ProblemReasoning        0.358   0.423   0.126   0.302         
SeriesCompletion        0.360   0.549   0.256   0.223  -0.107 
ArithmeticProblems      0.371   0.185   0.502   0.307         

               Factor1 Factor2 Factor3 Factor4 Factor5
SS loadings      3.632   2.964   2.456   2.345   0.663
Proportion Var   0.151   0.124   0.102   0.098   0.028
Cumulative Var   0.151   0.275   0.377   0.475   0.503

Test of the hypothesis that 5 factors are sufficient.
The chi square statistic is 186.82 on 166 degrees of freedom.
The p-value is 0.128 
> Harman74.FA <- factanal(factors = 5, covmat = Harman74.cor,
+                         rotation = "promax")
> print(Harman74.FA$loadings, sort = TRUE)

Loadings:
                       Factor1 Factor2 Factor3 Factor4 Factor5
VisualPerception        0.831          -0.127           0.230 
Cubes                   0.534                                 
PaperFormBoard          0.736          -0.290           0.136 
Flags                   0.647                  -0.104         
SeriesCompletion        0.555   0.126   0.127                 
GeneralInformation              0.764                         
PargraphComprehension           0.845  -0.140   0.140         
SentenceCompletion              0.872          -0.140         
WordClassification      0.277   0.505   0.104                 
WordMeaning                     0.846  -0.108                 
Addition               -0.334           1.012                 
CountingDots            0.206  -0.200   0.722           0.185 
ArithmeticProblems              0.197   0.500   0.139         
WordRecognition        -0.126   0.127  -0.103   0.657         
NumberRecognition                               0.568         
FigureRecognition       0.399  -0.142  -0.207   0.562         
ObjectNumber           -0.108           0.107   0.613         
StraightCurvedCapitals  0.542           0.247           0.618 
Code                            0.112   0.288   0.486   0.424 
NumberFigure            0.255  -0.230   0.211   0.413         
FigureWord              0.187                   0.347         
Deduction               0.404   0.169           0.117  -0.203 
NumericalPuzzles        0.393           0.368                 
ProblemReasoning        0.381   0.188           0.169         

               Factor1 Factor2 Factor3 Factor4 Factor5
SS loadings      3.529   3.311   2.367   2.109   0.762
Proportion Var   0.147   0.138   0.099   0.088   0.032
Cumulative Var   0.147   0.285   0.384   0.471   0.503
> 
> 
> 
> cleanEx()
> nameEx("InsectSprays")
> ### * InsectSprays
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: InsectSprays
> ### Title: Effectiveness of Insect Sprays
> ### Aliases: InsectSprays
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> boxplot(count ~ spray, data = InsectSprays,
+         xlab = "Type of spray", ylab = "Insect count",
+         main = "InsectSprays data", varwidth = TRUE, col = "lightgray")
> fm1 <- aov(count ~ spray, data = InsectSprays)
> summary(fm1)
            Df Sum Sq Mean Sq F value Pr(>F)    
spray        5   2669   533.8    34.7 <2e-16 ***
Residuals   66   1015    15.4                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0))
> plot(fm1)
> fm2 <- aov(sqrt(count) ~ spray, data = InsectSprays)
> summary(fm2)
            Df Sum Sq Mean Sq F value Pr(>F)    
spray        5  88.44  17.688    44.8 <2e-16 ***
Residuals   66  26.06   0.395                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> plot(fm2)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("JohnsonJohnson")
> ### * JohnsonJohnson
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: JohnsonJohnson
> ### Title: Quarterly Earnings per Johnson & Johnson Share
> ### Aliases: JohnsonJohnson
> ### Keywords: datasets
> 
> ### ** Examples
> 
> 
> cleanEx()
> nameEx("LifeCycleSavings")
> ### * LifeCycleSavings
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: LifeCycleSavings
> ### Title: Intercountry Life-Cycle Savings Data
> ### Aliases: LifeCycleSavings
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> pairs(LifeCycleSavings, panel = panel.smooth,
+       main = "LifeCycleSavings data")
> fm1 <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
> summary(fm1)

Call:
lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)

Residuals:
    Min      1Q  Median      3Q     Max 
-8.2422 -2.6857 -0.2488  2.4280  9.7509 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) 28.5660865  7.3545161   3.884 0.000334 ***
pop15       -0.4611931  0.1446422  -3.189 0.002603 ** 
pop75       -1.6914977  1.0835989  -1.561 0.125530    
dpi         -0.0003369  0.0009311  -0.362 0.719173    
ddpi         0.4096949  0.1961971   2.088 0.042471 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.803 on 45 degrees of freedom
Multiple R-squared:  0.3385,	Adjusted R-squared:  0.2797 
F-statistic: 5.756 on 4 and 45 DF,  p-value: 0.0007904

> 
> 
> 
> cleanEx()
> nameEx("Loblolly")
> ### * Loblolly
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Loblolly
> ### Title: Growth of Loblolly pine trees
> ### Aliases: Loblolly
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> plot(height ~ age, data = Loblolly, subset = Seed == 329,
+      xlab = "Tree age (yr)", las = 1,
+      ylab = "Tree height (ft)",
+      main = "Loblolly data and fitted curve (Seed 329 only)")
> fm1 <- nls(height ~ SSasymp(age, Asym, R0, lrc),
+            data = Loblolly, subset = Seed == 329)
> age <- seq(0, 30, length.out = 101)
> lines(age, predict(fm1, list(age = age)))
> 
> 
> 
> cleanEx()
> nameEx("Nile")
> ### * Nile
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Nile
> ### Title: Flow of the River Nile
> ### Aliases: Nile
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> par(mfrow = c(2, 2))
> plot(Nile)
> acf(Nile)
> pacf(Nile)
> ar(Nile) # selects order 2

Call:
ar(x = Nile)

Coefficients:
     1       2  
0.4081  0.1812  

Order selected 2  sigma^2 estimated as  21247
> cpgram(ar(Nile)$resid)
> par(mfrow = c(1, 1))
> arima(Nile, c(2, 0, 0))

Call:
arima(x = Nile, order = c(2, 0, 0))

Coefficients:
         ar1     ar2  intercept
      0.4096  0.1987   919.8397
s.e.  0.0974  0.0990    35.6410

sigma^2 estimated as 20291:  log likelihood = -637.98,  aic = 1283.96
> 
> ## Now consider missing values, following Durbin & Koopman
> NileNA <- Nile
> NileNA[c(21:40, 61:80)] <- NA
> arima(NileNA, c(2, 0, 0))

Call:
arima(x = NileNA, order = c(2, 0, 0))

Coefficients:
         ar1     ar2  intercept
      0.3622  0.1678   918.3103
s.e.  0.1273  0.1323    39.5037

sigma^2 estimated as 23676:  log likelihood = -387.7,  aic = 783.41
> plot(NileNA)
> pred <-
+    predict(arima(window(NileNA, 1871, 1890), c(2, 0, 0)), n.ahead = 20)
> lines(pred$pred, lty = 3, col = "red")
> lines(pred$pred + 2*pred$se, lty = 2, col = "blue")
> lines(pred$pred - 2*pred$se, lty = 2, col = "blue")
> pred <-
+    predict(arima(window(NileNA, 1871, 1930), c(2, 0, 0)), n.ahead = 20)
> lines(pred$pred, lty = 3, col = "red")
> lines(pred$pred + 2*pred$se, lty = 2, col = "blue")
> lines(pred$pred - 2*pred$se, lty = 2, col = "blue")
> 
> ## Structural time series models
> par(mfrow = c(3, 1))
> plot(Nile)
> ## local level model
> (fit <- StructTS(Nile, type = "level"))

Call:
StructTS(x = Nile, type = "level")

Variances:
  level  epsilon  
   1469    15099  
> lines(fitted(fit), lty = 2)              # contemporaneous smoothing
> lines(tsSmooth(fit), lty = 2, col = 4)   # fixed-interval smoothing
> plot(residuals(fit)); abline(h = 0, lty = 3)
> ## local trend model
> (fit2 <- StructTS(Nile, type = "trend")) ## constant trend fitted

Call:
StructTS(x = Nile, type = "trend")

Variances:
  level    slope  epsilon  
   1427        0    15047  
> pred <- predict(fit, n.ahead = 30)
> ## with 50% confidence interval
> ts.plot(Nile, pred$pred,
+         pred$pred + 0.67*pred$se, pred$pred -0.67*pred$se)
> 
> ## Now consider missing values
> plot(NileNA)
> (fit3 <- StructTS(NileNA, type = "level"))

Call:
StructTS(x = NileNA, type = "level")

Variances:
  level  epsilon  
  685.8  17899.8  
> lines(fitted(fit3), lty = 2)
> lines(tsSmooth(fit3), lty = 3)
> plot(residuals(fit3)); abline(h = 0, lty = 3)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("Orange")
> ### * Orange
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Orange
> ### Title: Growth of Orange Trees
> ### Aliases: Orange
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> coplot(circumference ~ age | Tree, data = Orange, show.given = FALSE)
> fm1 <- nls(circumference ~ SSlogis(age, Asym, xmid, scal),
+            data = Orange, subset = Tree == 3)
> plot(circumference ~ age, data = Orange, subset = Tree == 3,
+      xlab = "Tree age (days since 1968/12/31)",
+      ylab = "Tree circumference (mm)", las = 1,
+      main = "Orange tree data and fitted model (Tree 3 only)")
> age <- seq(0, 1600, length.out = 101)
> lines(age, predict(fm1, list(age = age)))
> 
> 
> 
> cleanEx()
> nameEx("OrchardSprays")
> ### * OrchardSprays
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: OrchardSprays
> ### Title: Potency of Orchard Sprays
> ### Aliases: OrchardSprays
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> pairs(OrchardSprays, main = "OrchardSprays data")
> 
> 
> 
> cleanEx()
> nameEx("PlantGrowth")
> ### * PlantGrowth
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: PlantGrowth
> ### Title: Results from an Experiment on Plant Growth
> ### Aliases: PlantGrowth
> ### Keywords: datasets
> 
> ### ** Examples
> 
> ## One factor ANOVA example from Dobson's book, cf. Table 7.4:
> require(stats); require(graphics)
> boxplot(weight ~ group, data = PlantGrowth, main = "PlantGrowth data",
+         ylab = "Dried weight of plants", col = "lightgray",
+         notch = TRUE, varwidth = TRUE)
Warning in bxp(list(stats = c(4.17, 4.53, 5.155, 5.33, 6.11, 3.59, 4.17,  :
  some notches went outside hinges ('box'): maybe set notch=FALSE
> anova(lm(weight ~ group, data = PlantGrowth))
Analysis of Variance Table

Response: weight
          Df  Sum Sq Mean Sq F value  Pr(>F)  
group      2  3.7663  1.8832  4.8461 0.01591 *
Residuals 27 10.4921  0.3886                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> 
> 
> 
> cleanEx()
> nameEx("Puromycin")
> ### * Puromycin
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Puromycin
> ### Title: Reaction Velocity of an Enzymatic Reaction
> ### Aliases: Puromycin
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ## Don't show: 
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> plot(rate ~ conc, data = Puromycin, las = 1,
+      xlab = "Substrate concentration (ppm)",
+      ylab = "Reaction velocity (counts/min/min)",
+      pch = as.integer(Puromycin$state),
+      col = as.integer(Puromycin$state),
+      main = "Puromycin data and fitted Michaelis-Menten curves")
> ## simplest form of fitting the Michaelis-Menten model to these data
> fm1 <- nls(rate ~ Vm * conc/(K + conc), data = Puromycin,
+            subset = state == "treated",
+            start = c(Vm = 200, K = 0.05))
> fm2 <- nls(rate ~ Vm * conc/(K + conc), data = Puromycin,
+            subset = state == "untreated",
+            start = c(Vm = 160, K = 0.05))
> summary(fm1)

Formula: rate ~ Vm * conc/(K + conc)

Parameters:
    Estimate Std. Error t value Pr(>|t|)    
Vm 2.127e+02  6.947e+00  30.615 3.24e-11 ***
K  6.412e-02  8.281e-03   7.743 1.57e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10.93 on 10 degrees of freedom

> summary(fm2)

Formula: rate ~ Vm * conc/(K + conc)

Parameters:
    Estimate Std. Error t value Pr(>|t|)    
Vm 1.603e+02  6.480e+00  24.734 1.38e-09 ***
K  4.771e-02  7.782e-03   6.131 0.000173 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.773 on 9 degrees of freedom

> ## add fitted lines to the plot
> conc <- seq(0, 1.2, length.out = 101)
> lines(conc, predict(fm1, list(conc = conc)), lty = 1, col = 1)
> lines(conc, predict(fm2, list(conc = conc)), lty = 2, col = 2)
> legend(0.8, 120, levels(Puromycin$state),
+        col = 1:2, lty = 1:2, pch = 1:2)
> 
> ## using partial linearity
> fm3 <- nls(rate ~ conc/(K + conc), data = Puromycin,
+            subset = state == "treated", start = c(K = 0.05),
+            algorithm = "plinear")
> 
> 
> 
> cleanEx()
> nameEx("Theoph")
> ### * Theoph
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Theoph
> ### Title: Pharmacokinetics of Theophylline
> ### Aliases: Theoph
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ## Don't show: 
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> coplot(conc ~ Time | Subject, data = Theoph, show.given = FALSE)
> Theoph.4 <- subset(Theoph, Subject == 4)
> fm1 <- nls(conc ~ SSfol(Dose, Time, lKe, lKa, lCl),
+            data = Theoph.4)
> summary(fm1)

Formula: conc ~ SSfol(Dose, Time, lKe, lKa, lCl)

Parameters:
    Estimate Std. Error t value Pr(>|t|)    
lKe  -2.4365     0.2257 -10.797 4.77e-06 ***
lKa   0.1583     0.2297   0.689     0.51    
lCl  -3.2861     0.1448 -22.695 1.51e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8465 on 8 degrees of freedom

> plot(conc ~ Time, data = Theoph.4,
+      xlab = "Time since drug administration (hr)",
+      ylab = "Theophylline concentration (mg/L)",
+      main = "Observed concentrations and fitted model",
+      sub  = "Theophylline data - Subject 4 only",
+      las = 1, col = 4)
> xvals <- seq(0, par("usr")[2], length.out = 55)
> lines(xvals, predict(fm1, newdata = list(Time = xvals)),
+       col = 4)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("Titanic")
> ### * Titanic
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: Titanic
> ### Title: Survival of passengers on the Titanic
> ### Aliases: Titanic
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> mosaicplot(Titanic, main = "Survival on the Titanic")
> ## Higher survival rates in children?
> apply(Titanic, c(3, 4), sum)
       Survived
Age       No Yes
  Child   52  57
  Adult 1438 654
> ## Higher survival rates in females?
> apply(Titanic, c(2, 4), sum)
        Survived
Sex        No Yes
  Male   1364 367
  Female  126 344
> ## Use loglm() in package 'MASS' for further analysis ...
> 
> 
> 
> cleanEx()
> nameEx("ToothGrowth")
> ### * ToothGrowth
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: ToothGrowth
> ### Title: The Effect of Vitamin C on Tooth Growth in Guinea Pigs
> ### Aliases: ToothGrowth
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> coplot(len ~ dose | supp, data = ToothGrowth, panel = panel.smooth,
+        xlab = "ToothGrowth data: length vs dose, given type of supplement")
> 
> 
> 
> cleanEx()
> nameEx("UCBAdmissions")
> ### * UCBAdmissions
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: UCBAdmissions
> ### Title: Student Admissions at UC Berkeley
> ### Aliases: UCBAdmissions
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> ## Data aggregated over departments
> apply(UCBAdmissions, c(1, 2), sum)
          Gender
Admit      Male Female
  Admitted 1198    557
  Rejected 1493   1278
> mosaicplot(apply(UCBAdmissions, c(1, 2), sum),
+            main = "Student admissions at UC Berkeley")
> ## Data for individual departments
> opar <- par(mfrow = c(2, 3), oma = c(0, 0, 2, 0))
> for(i in 1:6)
+   mosaicplot(UCBAdmissions[,,i],
+     xlab = "Admit", ylab = "Sex",
+     main = paste("Department", LETTERS[i]))
> mtext(expression(bold("Student admissions at UC Berkeley")),
+       outer = TRUE, cex = 1.5)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("UKDriverDeaths")
> ### * UKDriverDeaths
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: UKDriverDeaths
> ### Title: Road Casualties in Great Britain 1969-84
> ### Aliases: UKDriverDeaths Seatbelts
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ## work with pre-seatbelt period to identify a model, use logs
> work <- window(log10(UKDriverDeaths), end = 1982+11/12)
> par(mfrow = c(3, 1))
> plot(work); acf(work); pacf(work)
> par(mfrow = c(1, 1))
> (fit <- arima(work, c(1, 0, 0), seasonal = list(order = c(1, 0, 0))))

Call:
arima(x = work, order = c(1, 0, 0), seasonal = list(order = c(1, 0, 0)))

Coefficients:
         ar1    sar1  intercept
      0.4378  0.6281     3.2274
s.e.  0.0764  0.0637     0.0131

sigma^2 estimated as 0.00157:  log likelihood = 300.85,  aic = -593.7
> z <- predict(fit, n.ahead = 24)
> ts.plot(log10(UKDriverDeaths), z$pred, z$pred+2*z$se, z$pred-2*z$se,
+         lty = c(1, 3, 2, 2), col = c("black", "red", "blue", "blue"))
> 
> ## now see the effect of the explanatory variables
> X <- Seatbelts[, c("kms", "PetrolPrice", "law")]
> X[, 1] <- log10(X[, 1]) - 4
> arima(log10(Seatbelts[, "drivers"]), c(1, 0, 0),
+       seasonal = list(order = c(1, 0, 0)), xreg = X)

Call:
arima(x = log10(Seatbelts[, "drivers"]), order = c(1, 0, 0), seasonal = list(order = c(1, 
    0, 0)), xreg = X)

Coefficients:
         ar1    sar1  intercept     kms  PetrolPrice      law
      0.3348  0.6672     3.3539  0.0082      -1.2224  -0.0963
s.e.  0.0775  0.0612     0.0441  0.0902       0.3839   0.0166

sigma^2 estimated as 0.001476:  log likelihood = 349.73,  aic = -685.46
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("UKLungDeaths")
> ### * UKLungDeaths
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: UKLungDeaths
> ### Title: Monthly Deaths from Lung Diseases in the UK
> ### Aliases: UKLungDeaths ldeaths fdeaths mdeaths
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics) # for time
> plot(ldeaths)
> plot(mdeaths, fdeaths)
> ## Better labels:
> yr <- floor(tt <- time(mdeaths))
> plot(mdeaths, fdeaths,
+      xy.labels = paste(month.abb[12*(tt - yr)], yr-1900, sep = "'"))
> 
> 
> 
> cleanEx()
> nameEx("UKgas")
> ### * UKgas
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: UKgas
> ### Title: UK Quarterly Gas Consumption
> ### Aliases: UKgas
> ### Keywords: datasets
> 
> ### ** Examples
> 
> ## maybe str(UKgas) ; plot(UKgas) ...
> 
> 
> 
> cleanEx()
> nameEx("USArrests")
> ### * USArrests
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: USArrests
> ### Title: Violent Crime Rates by US State
> ### Aliases: USArrests
> ### Keywords: datasets
> 
> ### ** Examples
> 
> summary(USArrests)
     Murder          Assault         UrbanPop          Rape      
 Min.   : 0.800   Min.   : 45.0   Min.   :32.00   Min.   : 7.30  
 1st Qu.: 4.075   1st Qu.:109.0   1st Qu.:54.50   1st Qu.:15.07  
 Median : 7.250   Median :159.0   Median :66.00   Median :20.10  
 Mean   : 7.788   Mean   :170.8   Mean   :65.54   Mean   :21.23  
 3rd Qu.:11.250   3rd Qu.:249.0   3rd Qu.:77.75   3rd Qu.:26.18  
 Max.   :17.400   Max.   :337.0   Max.   :91.00   Max.   :46.00  
> 
> require(graphics)
> pairs(USArrests, panel = panel.smooth, main = "USArrests data")
> 
> ## Difference between 'USArrests' and its correction
> USArrests["Maryland", "UrbanPop"] # 67 -- the transcription error
[1] 67
> UA.C <- USArrests
> UA.C["Maryland", "UrbanPop"] <- 76.6
> 
> ## also +/- 0.5 to restore the original  <n>.5  percentages
> s5u <- c("Colorado", "Florida", "Mississippi", "Wyoming")
> s5d <- c("Nebraska", "Pennsylvania")
> UA.C[s5u, "UrbanPop"] <- UA.C[s5u, "UrbanPop"] + 0.5
> UA.C[s5d, "UrbanPop"] <- UA.C[s5d, "UrbanPop"] - 0.5
> 
> ## ==> UA.C  is now a *C*orrected version of  USArrests
> 
> 
> 
> cleanEx()
> nameEx("USJudgeRatings")
> ### * USJudgeRatings
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: USJudgeRatings
> ### Title: Lawyers' Ratings of State Judges in the US Superior Court
> ### Aliases: USJudgeRatings
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> pairs(USJudgeRatings, main = "USJudgeRatings data")
> 
> 
> 
> cleanEx()
> nameEx("USPersonalExpenditure")
> ### * USPersonalExpenditure
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: USPersonalExpenditure
> ### Title: Personal Expenditure Data
> ### Aliases: USPersonalExpenditure
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats) # for medpolish
> USPersonalExpenditure
                      1940   1945  1950 1955  1960
Food and Tobacco    22.200 44.500 59.60 73.2 86.80
Household Operation 10.500 15.500 29.00 36.5 46.20
Medical and Health   3.530  5.760  9.71 14.0 21.10
Personal Care        1.040  1.980  2.45  3.4  5.40
Private Education    0.341  0.974  1.80  2.6  3.64
> medpolish(log10(USPersonalExpenditure))
1: 1.126317
2: 1.032421
Final: 1.032421

Median Polish Results (Dataset: "log10(USPersonalExpenditure)")

Overall: 0.9872192

Row Effects:
   Food and Tobacco Household Operation  Medical and Health       Personal Care 
          0.7880270           0.4327608           0.0000000          -0.5606543 
  Private Education 
         -0.7319467 

Column Effects:
      1940       1945       1950       1955       1960 
-0.4288933 -0.2267967  0.0000000  0.1423128  0.3058289 

Residuals:
                         1940       1945      1950      1955      1960
Food and Tobacco     0.000000  0.0999105  0.000000 -0.053048 -0.142555
Household Operation  0.030103 -0.0028516  0.042418  0.000000 -0.061167
Medical and Health  -0.010551  0.0000000  0.000000  0.016596  0.031234
Personal Care        0.019362  0.0968971 -0.037399 -0.037399  0.000000
Private Education   -0.293625 -0.0399168  0.000000  0.017388  0.000000

> 
> 
> 
> cleanEx()
> nameEx("VADeaths")
> ### * VADeaths
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: VADeaths
> ### Title: Death Rates in Virginia (1940)
> ### Aliases: VADeaths
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> n <- length(dr <- c(VADeaths))
> nam <- names(VADeaths)
> d.VAD <- data.frame(
+  Drate = dr,
+  age = rep(ordered(rownames(VADeaths)), length.out = n),
+  gender = gl(2, 5, n, labels = c("M", "F")),
+  site =  gl(2, 10, labels = c("rural", "urban")))
> coplot(Drate ~ as.numeric(age) | gender * site, data = d.VAD,
+        panel = panel.smooth, xlab = "VADeaths data - Given: gender")
> summary(aov.VAD <- aov(Drate ~ .^2, data = d.VAD))
            Df Sum Sq Mean Sq F value   Pr(>F)    
age          4   6288  1572.1 590.858 8.55e-06 ***
gender       1    648   647.5 243.361 9.86e-05 ***
site         1     77    76.8  28.876  0.00579 ** 
age:gender   4     86    21.6   8.100  0.03358 *  
age:site     4     43    10.6   3.996  0.10414    
gender:site  1     73    73.0  27.422  0.00636 ** 
Residuals    4     11     2.7                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0))
> plot(aov.VAD)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("WWWusage")
> ### * WWWusage
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: WWWusage
> ### Title: Internet Usage per Minute
> ### Aliases: WWWusage
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> work <- diff(WWWusage)
> par(mfrow = c(2, 1)); plot(WWWusage); plot(work)
> ## Not run: 
> ##D require(stats)
> ##D aics <- matrix(, 6, 6, dimnames = list(p = 0:5, q = 0:5))
> ##D for(q in 1:5) aics[1, 1+q] <- arima(WWWusage, c(0, 1, q),
> ##D     optim.control = list(maxit = 500))$aic
> ##D for(p in 1:5)
> ##D    for(q in 0:5) aics[1+p, 1+q] <- arima(WWWusage, c(p, 1, q),
> ##D        optim.control = list(maxit = 500))$aic
> ##D round(aics - min(aics, na.rm = TRUE), 2)
> ## End(Not run)
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("WorldPhones")
> ### * WorldPhones
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: WorldPhones
> ### Title: The World's Telephones
> ### Aliases: WorldPhones
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> matplot(rownames(WorldPhones), WorldPhones, type = "b", log = "y",
+         xlab = "Year", ylab = "Number of telephones (1000's)")
> legend(1951.5, 80000, colnames(WorldPhones), col = 1:6, lty = 1:5,
+        pch = rep(21, 7))
> title(main = "World phones data: log scale for response")
> 
> 
> 
> cleanEx()
> nameEx("ability.cov")
> ### * ability.cov
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: ability.cov
> ### Title: Ability and Intelligence Tests
> ### Aliases: ability.cov
> ### Keywords: datasets
> 
> ### ** Examples
> 
> 
> cleanEx()
> nameEx("airmiles")
> ### * airmiles
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: airmiles
> ### Title: Passenger Miles on Commercial US Airlines, 1937-1960
> ### Aliases: airmiles
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> plot(airmiles, main = "airmiles data",
+      xlab = "Passenger-miles flown by U.S. commercial airlines", col = 4)
> 
> 
> 
> cleanEx()
> nameEx("airquality")
> ### * airquality
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: airquality
> ### Title: New York Air Quality Measurements
> ### Aliases: airquality
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> pairs(airquality, panel = panel.smooth, main = "airquality data")
> 
> 
> 
> cleanEx()
> nameEx("anscombe")
> ### * anscombe
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: anscombe
> ### Title: Anscombe's Quartet of 'Identical' Simple Linear Regressions
> ### Aliases: anscombe
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> summary(anscombe)
       x1             x2             x3             x4           y1        
 Min.   : 4.0   Min.   : 4.0   Min.   : 4.0   Min.   : 8   Min.   : 4.260  
 1st Qu.: 6.5   1st Qu.: 6.5   1st Qu.: 6.5   1st Qu.: 8   1st Qu.: 6.315  
 Median : 9.0   Median : 9.0   Median : 9.0   Median : 8   Median : 7.580  
 Mean   : 9.0   Mean   : 9.0   Mean   : 9.0   Mean   : 9   Mean   : 7.501  
 3rd Qu.:11.5   3rd Qu.:11.5   3rd Qu.:11.5   3rd Qu.: 8   3rd Qu.: 8.570  
 Max.   :14.0   Max.   :14.0   Max.   :14.0   Max.   :19   Max.   :10.840  
       y2              y3              y4        
 Min.   :3.100   Min.   : 5.39   Min.   : 5.250  
 1st Qu.:6.695   1st Qu.: 6.25   1st Qu.: 6.170  
 Median :8.140   Median : 7.11   Median : 7.040  
 Mean   :7.501   Mean   : 7.50   Mean   : 7.501  
 3rd Qu.:8.950   3rd Qu.: 7.98   3rd Qu.: 8.190  
 Max.   :9.260   Max.   :12.74   Max.   :12.500  
> 
> ##-- now some "magic" to do the 4 regressions in a loop:
> ff <- y ~ x
> mods <- setNames(as.list(1:4), paste0("lm", 1:4))
> for(i in 1:4) {
+   ff[2:3] <- lapply(paste0(c("y","x"), i), as.name)
+   ## or   ff[[2]] <- as.name(paste0("y", i))
+   ##      ff[[3]] <- as.name(paste0("x", i))
+   mods[[i]] <- lmi <- lm(ff, data = anscombe)
+   print(anova(lmi))
+ }
Analysis of Variance Table

Response: y1
          Df Sum Sq Mean Sq F value  Pr(>F)   
x1         1 27.510 27.5100   17.99 0.00217 **
Residuals  9 13.763  1.5292                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Analysis of Variance Table

Response: y2
          Df Sum Sq Mean Sq F value   Pr(>F)   
x2         1 27.500 27.5000  17.966 0.002179 **
Residuals  9 13.776  1.5307                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Analysis of Variance Table

Response: y3
          Df Sum Sq Mean Sq F value   Pr(>F)   
x3         1 27.470 27.4700  17.972 0.002176 **
Residuals  9 13.756  1.5285                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Analysis of Variance Table

Response: y4
          Df Sum Sq Mean Sq F value   Pr(>F)   
x4         1 27.490 27.4900  18.003 0.002165 **
Residuals  9 13.742  1.5269                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> 
> ## See how close they are (numerically!)
> sapply(mods, coef)
                  lm1      lm2       lm3       lm4
(Intercept) 3.0000909 3.000909 3.0024545 3.0017273
x1          0.5000909 0.500000 0.4997273 0.4999091
> lapply(mods, function(fm) coef(summary(fm)))
$lm1
             Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.0000909  1.1247468 2.667348 0.025734051
x1          0.5000909  0.1179055 4.241455 0.002169629

$lm2
            Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.000909  1.1253024 2.666758 0.025758941
x2          0.500000  0.1179637 4.238590 0.002178816

$lm3
             Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.0024545  1.1244812 2.670080 0.025619109
x3          0.4997273  0.1178777 4.239372 0.002176305

$lm4
             Estimate Std. Error  t value    Pr(>|t|)
(Intercept) 3.0017273  1.1239211 2.670763 0.025590425
x4          0.4999091  0.1178189 4.243028 0.002164602

> 
> ## Now, do what you should have done in the first place: PLOTS
> op <- par(mfrow = c(2, 2), mar = 0.1+c(4,4,1,1), oma =  c(0, 0, 2, 0))
> for(i in 1:4) {
+   ff[2:3] <- lapply(paste0(c("y","x"), i), as.name)
+   plot(ff, data = anscombe, col = "red", pch = 21, bg = "orange", cex = 1.2,
+        xlim = c(3, 19), ylim = c(3, 13))
+   abline(mods[[i]], col = "blue")
+ }
> mtext("Anscombe's 4 Regression data sets", outer = TRUE, cex = 1.5)
> par(op)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("attenu")
> ### * attenu
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: attenu
> ### Title: The Joyner-Boore Attenuation Data
> ### Aliases: attenu
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> ## check the data class of the variables
> sapply(attenu, data.class)
    event       mag   station      dist     accel 
"numeric" "numeric"  "factor" "numeric" "numeric" 
> summary(attenu)
     event            mag           station         dist       
 Min.   : 1.00   Min.   :5.000   117    :  5   Min.   :  0.50  
 1st Qu.: 9.00   1st Qu.:5.300   1028   :  4   1st Qu.: 11.32  
 Median :18.00   Median :6.100   113    :  4   Median : 23.40  
 Mean   :14.74   Mean   :6.084   112    :  3   Mean   : 45.60  
 3rd Qu.:20.00   3rd Qu.:6.600   135    :  3   3rd Qu.: 47.55  
 Max.   :23.00   Max.   :7.700   (Other):147   Max.   :370.00  
                                 NA's   : 16                   
     accel        
 Min.   :0.00300  
 1st Qu.:0.04425  
 Median :0.11300  
 Mean   :0.15422  
 3rd Qu.:0.21925  
 Max.   :0.81000  
                  
> pairs(attenu, main = "attenu data")
> coplot(accel ~ dist | as.factor(event), data = attenu, show.given = FALSE)
> coplot(log(accel) ~ log(dist) | as.factor(event),
+        data = attenu, panel = panel.smooth, show.given = FALSE)
> 
> 
> 
> cleanEx()
> nameEx("attitude")
> ### * attitude
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: attitude
> ### Title: The Chatterjee-Price Attitude Data
> ### Aliases: attitude
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> pairs(attitude, main = "attitude data")
> summary(attitude)
     rating        complaints     privileges       learning         raises     
 Min.   :40.00   Min.   :37.0   Min.   :30.00   Min.   :34.00   Min.   :43.00  
 1st Qu.:58.75   1st Qu.:58.5   1st Qu.:45.00   1st Qu.:47.00   1st Qu.:58.25  
 Median :65.50   Median :65.0   Median :51.50   Median :56.50   Median :63.50  
 Mean   :64.63   Mean   :66.6   Mean   :53.13   Mean   :56.37   Mean   :64.63  
 3rd Qu.:71.75   3rd Qu.:77.0   3rd Qu.:62.50   3rd Qu.:66.75   3rd Qu.:71.00  
 Max.   :85.00   Max.   :90.0   Max.   :83.00   Max.   :75.00   Max.   :88.00  
    critical        advance     
 Min.   :49.00   Min.   :25.00  
 1st Qu.:69.25   1st Qu.:35.00  
 Median :77.50   Median :41.00  
 Mean   :74.77   Mean   :42.93  
 3rd Qu.:80.00   3rd Qu.:47.75  
 Max.   :92.00   Max.   :72.00  
> summary(fm1 <- lm(rating ~ ., data = attitude))

Call:
lm(formula = rating ~ ., data = attitude)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.9418  -4.3555   0.3158   5.5425  11.5990 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 10.78708   11.58926   0.931 0.361634    
complaints   0.61319    0.16098   3.809 0.000903 ***
privileges  -0.07305    0.13572  -0.538 0.595594    
learning     0.32033    0.16852   1.901 0.069925 .  
raises       0.08173    0.22148   0.369 0.715480    
critical     0.03838    0.14700   0.261 0.796334    
advance     -0.21706    0.17821  -1.218 0.235577    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 7.068 on 23 degrees of freedom
Multiple R-squared:  0.7326,	Adjusted R-squared:  0.6628 
F-statistic:  10.5 on 6 and 23 DF,  p-value: 1.24e-05

> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+             mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> summary(fm2 <- lm(rating ~ complaints, data = attitude))

Call:
lm(formula = rating ~ complaints, data = attitude)

Residuals:
     Min       1Q   Median       3Q      Max 
-12.8799  -5.9905   0.1783   6.2978   9.6294 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 14.37632    6.61999   2.172   0.0385 *  
complaints   0.75461    0.09753   7.737 1.99e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6.993 on 28 degrees of freedom
Multiple R-squared:  0.6813,	Adjusted R-squared:  0.6699 
F-statistic: 59.86 on 1 and 28 DF,  p-value: 1.988e-08

> plot(fm2)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("beavers")
> ### * beavers
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: beavers
> ### Title: Body Temperature Series of Two Beavers
> ### Aliases: beavers beaver1 beaver2
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> (yl <- range(beaver1$temp, beaver2$temp))
[1] 36.33 38.35
> 
> beaver.plot <- function(bdat, ...) {
+   nam <- deparse(substitute(bdat))
+   with(bdat, {
+     # Hours since start of day:
+     hours <- time %/% 100 + 24*(day - day[1]) + (time %% 100)/60
+     plot (hours, temp, type = "l", ...,
+           main = paste(nam, "body temperature"))
+     abline(h = 37.5, col = "gray", lty = 2)
+     is.act <- activ == 1
+     points(hours[is.act], temp[is.act], col = 2, cex = .8)
+   })
+ }
> op <- par(mfrow = c(2, 1), mar = c(3, 3, 4, 2), mgp = 0.9 * 2:0)
>  beaver.plot(beaver1, ylim = yl)
>  beaver.plot(beaver2, ylim = yl)
> par(op)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("cars")
> ### * cars
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: cars
> ### Title: Speed and Stopping Distances of Cars
> ### Aliases: cars
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> plot(cars, xlab = "Speed (mph)", ylab = "Stopping distance (ft)",
+      las = 1)
> lines(lowess(cars$speed, cars$dist, f = 2/3, iter = 3), col = "red")
> title(main = "cars data")
> plot(cars, xlab = "Speed (mph)", ylab = "Stopping distance (ft)",
+      las = 1, log = "xy")
> title(main = "cars data (logarithmic scales)")
> lines(lowess(cars$speed, cars$dist, f = 2/3, iter = 3), col = "red")
> summary(fm1 <- lm(log(dist) ~ log(speed), data = cars))

Call:
lm(formula = log(dist) ~ log(speed), data = cars)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.00215 -0.24578 -0.02898  0.20717  0.88289 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -0.7297     0.3758  -1.941   0.0581 .  
log(speed)    1.6024     0.1395  11.484 2.26e-15 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4053 on 48 degrees of freedom
Multiple R-squared:  0.7331,	Adjusted R-squared:  0.7276 
F-statistic: 131.9 on 1 and 48 DF,  p-value: 2.259e-15

> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+             mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
> 
> ## An example of polynomial regression
> plot(cars, xlab = "Speed (mph)", ylab = "Stopping distance (ft)",
+     las = 1, xlim = c(0, 25))
> d <- seq(0, 25, length.out = 200)
> for(degree in 1:4) {
+   fm <- lm(dist ~ poly(speed, degree), data = cars)
+   assign(paste("cars", degree, sep = "."), fm)
+   lines(d, predict(fm, data.frame(speed = d)), col = degree)
+ }
> anova(cars.1, cars.2, cars.3, cars.4)
Analysis of Variance Table

Model 1: dist ~ poly(speed, degree)
Model 2: dist ~ poly(speed, degree)
Model 3: dist ~ poly(speed, degree)
Model 4: dist ~ poly(speed, degree)
  Res.Df   RSS Df Sum of Sq      F Pr(>F)
1     48 11354                           
2     47 10825  1    528.81 2.3108 0.1355
3     46 10634  1    190.35 0.8318 0.3666
4     45 10298  1    336.55 1.4707 0.2316
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("chickwts")
> ### * chickwts
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: chickwts
> ### Title: Chicken Weights by Feed Type
> ### Aliases: chickwts
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> boxplot(weight ~ feed, data = chickwts, col = "lightgray",
+     varwidth = TRUE, notch = TRUE, main = "chickwt data",
+     ylab = "Weight at six weeks (gm)")
Warning in bxp(list(stats = c(216, 271.5, 342, 373.5, 404, 108, 136, 151.5,  :
  some notches went outside hinges ('box'): maybe set notch=FALSE
> anova(fm1 <- lm(weight ~ feed, data = chickwts))
Analysis of Variance Table

Response: weight
          Df Sum Sq Mean Sq F value    Pr(>F)    
feed       5 231129   46226  15.365 5.936e-10 ***
Residuals 65 195556    3009                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+             mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("co2")
> ### * co2
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: co2
> ### Title: Mauna Loa Atmospheric CO2 Concentration
> ### Aliases: co2
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> plot(co2, ylab = expression("Atmospheric concentration of CO"[2]),
+      las = 1)
> title(main = "co2 data set")
> 
> 
> 
> cleanEx()
> nameEx("crimtab")
> ### * crimtab
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: crimtab
> ### Title: Student's 3000 Criminals Data
> ### Aliases: crimtab
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats)
> dim(crimtab)
[1] 42 22
> utils::str(crimtab)
 'table' int [1:42, 1:22] 0 0 0 0 0 0 1 0 0 0 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:42] "9.4" "9.5" "9.6" "9.7" ...
  ..$ : chr [1:22] "142.24" "144.78" "147.32" "149.86" ...
> ## for nicer printing:
> local({cT <- crimtab
+        colnames(cT) <- substring(colnames(cT), 2, 3)
+        print(cT, zero.print = " ")
+ })
     42 44 47 49 52 54 57 60 62 65 67 70 72 75 77 80 82 85 87 90 93 95
9.4                                                                   
9.5                  1                                                
9.6                                                                   
9.7                                                                   
9.8                     1                                             
9.9         1     1     1                                             
10    1        1  2     2        1                                    
10.1           1  3  1     1  1                                       
10.2        2  2  2  1     2     1                                    
10.3     1  1  3  2  2  3  5                                          
10.4        1  1  2  3  3  4  3  3                                    
10.5           1  3  7  6  4  3  1  3  1     1                        
10.6           1  4  5  9 14  6  3  1        1                        
10.7        1  2  4  9 14 16 15  7  3  1  2                           
10.8           2  5  6 14 27 10  7  1  2  1                           
10.9              2  6 14 24 27 14 10  4  1                           
11             2  6 12 15 31 37 27 17 10  6                           
11.1           3  3 12 22 26 24 26 24  7  4  1                        
11.2           3  2  7 21 30 38 29 27 20  4  1                       1
11.3           1     5 10 24 26 39 26 24  7  2                        
11.4              3  4  9 29 56 58 26 22 10 11                        
11.5                 5 11 17 33 57 38 34 25 11  2                     
11.6              2  1  4 13 37 39 48 38 27 12  2  2     1            
11.7                 2  9 17 30 37 48 45 24  9  9  2                  
11.8              1     2 11 15 35 41 34 29 10  5  1                  
11.9              1  1  2 12 10 27 32 35 19 10  9  3  1               
12                      1  4  8 19 42 39 22 16  8  2  2               
12.1                       2  4 13 22 28 15 27 10  4  1               
12.2                    1  2  5  6 23 17 16 11  8  1  1               
12.3                          4  8 10 13 20 23  6  5                  
12.4                    1  1  1  2  7 12  4  7  7  1        1         
12.5                       1     1  3 12 11  8  6  8     2            
12.6                             1     3  5  7  8  6  3  1  1         
12.7                             1  1  7  5  5  8  2  2               
12.8                                1  2  3  1  8  5  3  1  1         
12.9                                   1  2  2     1  1               
13                                  3     1     1     2  1            
13.1                                   1  1                           
13.2                                1  1     1     3                  
13.3                                                  1     1         
13.4                                                                  
13.5                                                     1            
> 
> ## Repeat Student's experiment:
> 
> # 1) Reconstitute 3000 raw data for heights in inches and rounded to
> #    nearest integer as in Student's paper:
> 
> (heIn <- round(as.numeric(colnames(crimtab)) / 2.54))
 [1] 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
> d.hei <- data.frame(height = rep(heIn, colSums(crimtab)))
> 
> # 2) shuffle the data:
> 
> set.seed(1)
> d.hei <- d.hei[sample(1:3000), , drop = FALSE]
> 
> # 3) Make 750 samples each of size 4:
> 
> d.hei$sample <- as.factor(rep(1:750, each = 4))
> 
> # 4) Compute the means and standard deviations (n) for the 750 samples:
> 
> h.mean <- with(d.hei, tapply(height, sample, FUN = mean))
> h.sd   <- with(d.hei, tapply(height, sample, FUN = sd)) * sqrt(3/4)
> 
> # 5) Compute the difference between the mean of each sample and
> #    the mean of the population and then divide by the
> #    standard deviation of the sample:
> 
> zobs <- (h.mean - mean(d.hei[,"height"]))/h.sd
> 
> # 6) Replace infinite values by +/- 6 as in Student's paper:
> 
> zobs[infZ <- is.infinite(zobs)] # 3 of them
  73  312  674 
-Inf  Inf -Inf 
> zobs[infZ] <- 6 * sign(zobs[infZ])
> 
> # 7) Plot the distribution:
> 
> require(grDevices); require(graphics)
> hist(x = zobs, probability = TRUE, xlab = "Student's z",
+      col = grey(0.8), border = grey(0.5),
+      main = "Distribution of Student's z score  for 'crimtab' data")
> 
> 
> 
> cleanEx()
> nameEx("discoveries")
> ### * discoveries
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: discoveries
> ### Title: Yearly Numbers of Important Discoveries
> ### Aliases: discoveries
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> plot(discoveries, ylab = "Number of important discoveries",
+      las = 1)
> title(main = "discoveries data set")
> 
> 
> 
> cleanEx()
> nameEx("esoph")
> ### * esoph
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: esoph
> ### Title: Smoking, Alcohol and (O)esophageal Cancer
> ### Aliases: esoph
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats)
> require(graphics) # for mosaicplot
> summary(esoph)
   agegp          alcgp         tobgp        ncases         ncontrols    
 25-34:15   0-39g/day:23   0-9g/day:24   Min.   : 0.000   Min.   : 1.00  
 35-44:15   40-79    :23   10-19   :24   1st Qu.: 0.000   1st Qu.: 3.00  
 45-54:16   80-119   :21   20-29   :20   Median : 1.000   Median : 6.00  
 55-64:16   120+     :21   30+     :20   Mean   : 2.273   Mean   :11.08  
 65-74:15                                3rd Qu.: 4.000   3rd Qu.:14.00  
 75+  :11                                Max.   :17.000   Max.   :60.00  
> ## effects of alcohol, tobacco and interaction, age-adjusted
> model1 <- glm(cbind(ncases, ncontrols) ~ agegp + tobgp * alcgp,
+               data = esoph, family = binomial())
> anova(model1)
Analysis of Deviance Table

Model: binomial, link: logit

Response: cbind(ncases, ncontrols)

Terms added sequentially (first to last)


            Df Deviance Resid. Df Resid. Dev
NULL                           87    227.241
agegp        5   88.128        82    139.112
tobgp        3   19.085        79    120.028
alcgp        3   66.054        76     53.973
tobgp:alcgp  9    6.489        67     47.484
> ## Try a linear effect of alcohol and tobacco
> model2 <- glm(cbind(ncases, ncontrols) ~ agegp + unclass(tobgp)
+                                          + unclass(alcgp),
+               data = esoph, family = binomial())
> summary(model2)

Call:
glm(formula = cbind(ncases, ncontrols) ~ agegp + unclass(tobgp) + 
    unclass(alcgp), family = binomial(), data = esoph)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.7628  -0.6426  -0.2709   0.3043   2.0421  

Coefficients:
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)    -4.01097    0.31224 -12.846  < 2e-16 ***
agegp.L         2.96113    0.65092   4.549 5.39e-06 ***
agegp.Q        -1.33735    0.58918  -2.270  0.02322 *  
agegp.C         0.15292    0.44792   0.341  0.73281    
agegp^4         0.06668    0.30776   0.217  0.82848    
agegp^5        -0.20288    0.19523  -1.039  0.29872    
unclass(tobgp)  0.26162    0.08198   3.191  0.00142 ** 
unclass(alcgp)  0.65308    0.08452   7.727 1.10e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 227.241  on 87  degrees of freedom
Residual deviance:  59.277  on 80  degrees of freedom
AIC: 222.76

Number of Fisher Scoring iterations: 6

> ## Re-arrange data for a mosaic plot
> ttt <- table(esoph$agegp, esoph$alcgp, esoph$tobgp)
> o <- with(esoph, order(tobgp, alcgp, agegp))
> ttt[ttt == 1] <- esoph$ncases[o]
> tt1 <- table(esoph$agegp, esoph$alcgp, esoph$tobgp)
> tt1[tt1 == 1] <- esoph$ncontrols[o]
> tt <- array(c(ttt, tt1), c(dim(ttt),2),
+             c(dimnames(ttt), list(c("Cancer", "control"))))
> mosaicplot(tt, main = "esoph data set", color = TRUE)
> 
> 
> 
> cleanEx()
> nameEx("euro")
> ### * euro
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: euro
> ### Title: Conversion Rates of Euro Currencies
> ### Aliases: euro euro.cross
> ### Keywords: datasets
> 
> ### ** Examples
> 
> cbind(euro)
           euro
ATS   13.760300
BEF   40.339900
DEM    1.955830
ESP  166.386000
FIM    5.945730
FRF    6.559570
IEP    0.787564
ITL 1936.270000
LUF   40.339900
NLG    2.203710
PTE  200.482000
> 
> ## These relations hold:
> euro == signif(euro, 6) # [6 digit precision in Euro's definition]
 ATS  BEF  DEM  ESP  FIM  FRF  IEP  ITL  LUF  NLG  PTE 
TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
> all(euro.cross == outer(1/euro, euro))
[1] TRUE
> 
> ## Convert 20 Euro to Belgian Franc
> 20 * euro["BEF"]
    BEF 
806.798 
> ## Convert 20 Austrian Schilling to Euro
> 20 / euro["ATS"]
     ATS 
1.453457 
> ## Convert 20 Spanish Pesetas to Italian Lira
> 20 * euro.cross["ESP", "ITL"]
[1] 232.7443
> 
> require(graphics)
> dotchart(euro,
+          main = "euro data: 1 Euro in currency unit")
> dotchart(1/euro,
+          main = "euro data: 1 currency unit in Euros")
> dotchart(log(euro, 10),
+          main = "euro data: log10(1 Euro in currency unit)")
> 
> 
> 
> cleanEx()
> nameEx("faithful")
> ### * faithful
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: faithful
> ### Title: Old Faithful Geyser Data
> ### Aliases: faithful
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> f.tit <-  "faithful data: Eruptions of Old Faithful"
> 
> ne60 <- round(e60 <- 60 * faithful$eruptions)
> all.equal(e60, ne60)             # relative diff. ~ 1/10000
[1] "Mean relative difference: 9.515332e-05"
> table(zapsmall(abs(e60 - ne60))) # 0, 0.02 or 0.04

   0 0.02 0.04 
 106  163    3 
> faithful$better.eruptions <- ne60 / 60
> te <- table(ne60)
> te[te >= 4]                      # (too) many multiples of 5 !
ne60
105 108 110 112 113 120 216 230 240 245 249 250 255 260 261 262 265 270 272 275 
  6   4   7   8   4   4   4   5   6   5   4   4   4   5   4   4   4   8   5   4 
276 282 288 
  4   6   6 
> plot(names(te), te, type = "h", main = f.tit, xlab = "Eruption time (sec)")
> 
> plot(faithful[, -3], main = f.tit,
+      xlab = "Eruption time (min)",
+      ylab = "Waiting time to next eruption (min)")
> lines(lowess(faithful$eruptions, faithful$waiting, f = 2/3, iter = 3),
+       col = "red")
> 
> 
> 
> cleanEx()
> nameEx("freeny")
> ### * freeny
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: freeny
> ### Title: Freeny's Revenue Data
> ### Aliases: freeny freeny.x freeny.y
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> summary(freeny)
       y         lag.quarterly.revenue  price.index     income.level  
 Min.   :8.791   Min.   :8.791         Min.   :4.278   Min.   :5.821  
 1st Qu.:9.045   1st Qu.:9.020         1st Qu.:4.392   1st Qu.:5.948  
 Median :9.314   Median :9.284         Median :4.510   Median :6.061  
 Mean   :9.306   Mean   :9.281         Mean   :4.496   Mean   :6.039  
 3rd Qu.:9.591   3rd Qu.:9.561         3rd Qu.:4.605   3rd Qu.:6.139  
 Max.   :9.794   Max.   :9.775         Max.   :4.710   Max.   :6.200  
 market.potential
 Min.   :12.97   
 1st Qu.:13.01   
 Median :13.07   
 Mean   :13.07   
 3rd Qu.:13.12   
 Max.   :13.17   
> pairs(freeny, main = "freeny data")
> # gives warning: freeny$y has class "ts"
> 
> summary(fm1 <- lm(y ~ ., data = freeny))

Call:
lm(formula = y ~ ., data = freeny)

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0259426 -0.0101033  0.0003824  0.0103236  0.0267124 

Coefficients:
                      Estimate Std. Error t value Pr(>|t|)    
(Intercept)           -10.4726     6.0217  -1.739   0.0911 .  
lag.quarterly.revenue   0.1239     0.1424   0.870   0.3904    
price.index            -0.7542     0.1607  -4.693 4.28e-05 ***
income.level            0.7675     0.1339   5.730 1.93e-06 ***
market.potential        1.3306     0.5093   2.613   0.0133 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.01473 on 34 degrees of freedom
Multiple R-squared:  0.9981,	Adjusted R-squared:  0.9978 
F-statistic:  4354 on 4 and 34 DF,  p-value: < 2.2e-16

> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+             mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("infert")
> ### * infert
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: infert
> ### Title: Infertility after Spontaneous and Induced Abortion
> ### Aliases: infert
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats)
> model1 <- glm(case ~ spontaneous+induced, data = infert, family = binomial())
> summary(model1)

Call:
glm(formula = case ~ spontaneous + induced, family = binomial(), 
    data = infert)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.6678  -0.8360  -0.5772   0.9030   1.9362  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.7079     0.2677  -6.380 1.78e-10 ***
spontaneous   1.1972     0.2116   5.657 1.54e-08 ***
induced       0.4181     0.2056   2.033    0.042 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 316.17  on 247  degrees of freedom
Residual deviance: 279.61  on 245  degrees of freedom
AIC: 285.61

Number of Fisher Scoring iterations: 4

> ## adjusted for other potential confounders:
> summary(model2 <- glm(case ~ age+parity+education+spontaneous+induced,
+                      data = infert, family = binomial()))

Call:
glm(formula = case ~ age + parity + education + spontaneous + 
    induced, family = binomial(), data = infert)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.7603  -0.8162  -0.4956   0.8349   2.6536  

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -1.14924    1.41220  -0.814   0.4158    
age               0.03958    0.03120   1.269   0.2046    
parity           -0.82828    0.19649  -4.215 2.49e-05 ***
education6-11yrs -1.04424    0.79255  -1.318   0.1876    
education12+ yrs -1.40321    0.83416  -1.682   0.0925 .  
spontaneous       2.04591    0.31016   6.596 4.21e-11 ***
induced           1.28876    0.30146   4.275 1.91e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 316.17  on 247  degrees of freedom
Residual deviance: 257.80  on 241  degrees of freedom
AIC: 271.8

Number of Fisher Scoring iterations: 4

> ## Really should be analysed by conditional logistic regression
> ## which is in the survival package
> 
> 
> 
> cleanEx()
> nameEx("iris")
> ### * iris
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: iris
> ### Title: Edgar Anderson's Iris Data
> ### Aliases: iris iris3
> ### Keywords: datasets
> 
> ### ** Examples
> 
> dni3 <- dimnames(iris3)
> ii <- data.frame(matrix(aperm(iris3, c(1,3,2)), ncol = 4,
+                         dimnames = list(NULL, sub(" L.",".Length",
+                                         sub(" W.",".Width", dni3[[2]])))),
+     Species = gl(3, 50, labels = sub("S", "s", sub("V", "v", dni3[[3]]))))
> all.equal(ii, iris) # TRUE
[1] TRUE
> 
> 
> 
> cleanEx()
> nameEx("islands")
> ### * islands
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: islands
> ### Title: Areas of the World's Major Landmasses
> ### Aliases: islands
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> dotchart(log(islands, 10),
+    main = "islands data: log10(area) (log10(sq. miles))")
> dotchart(log(islands[order(islands)], 10),
+    main = "islands data: log10(area) (log10(sq. miles))")
> 
> 
> 
> cleanEx()
> nameEx("longley")
> ### * longley
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: longley
> ### Title: Longley's Economic Regression Data
> ### Aliases: longley
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ## give the data set in the form it is used in S-PLUS:
> longley.x <- data.matrix(longley[, 1:6])
> longley.y <- longley[, "Employed"]
> pairs(longley, main = "longley data")
> summary(fm1 <- lm(Employed ~ ., data = longley))

Call:
lm(formula = Employed ~ ., data = longley)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.41011 -0.15767 -0.02816  0.10155  0.45539 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -3.482e+03  8.904e+02  -3.911 0.003560 ** 
GNP.deflator  1.506e-02  8.492e-02   0.177 0.863141    
GNP          -3.582e-02  3.349e-02  -1.070 0.312681    
Unemployed   -2.020e-02  4.884e-03  -4.136 0.002535 ** 
Armed.Forces -1.033e-02  2.143e-03  -4.822 0.000944 ***
Population   -5.110e-02  2.261e-01  -0.226 0.826212    
Year          1.829e+00  4.555e-01   4.016 0.003037 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3049 on 9 degrees of freedom
Multiple R-squared:  0.9955,	Adjusted R-squared:  0.9925 
F-statistic: 330.3 on 6 and 9 DF,  p-value: 4.984e-10

> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+             mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("morley")
> ### * morley
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: morley
> ### Title: Michelson Speed of Light Data
> ### Aliases: morley
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> michelson <- transform(morley,
+                        Expt = factor(Expt), Run = factor(Run))
> xtabs(~ Expt + Run, data = michelson)  # 5 x 20 balanced (two-way)
    Run
Expt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   1 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1
   2 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1
   3 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1
   4 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1
   5 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1
> plot(Speed ~ Expt, data = michelson,
+      main = "Speed of Light Data", xlab = "Experiment No.")
> fm <- aov(Speed ~ Run + Expt, data = michelson)
> summary(fm)
            Df Sum Sq Mean Sq F value  Pr(>F)   
Run         19 113344    5965   1.105 0.36321   
Expt         4  94514   23629   4.378 0.00307 **
Residuals   76 410166    5397                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> fm0 <- update(fm, . ~ . - Run)
> anova(fm0, fm)
Analysis of Variance Table

Model 1: Speed ~ Expt
Model 2: Speed ~ Run + Expt
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     95 523510                           
2     76 410166 19    113344 1.1053 0.3632
> 
> 
> 
> cleanEx()
> nameEx("mtcars")
> ### * mtcars
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: mtcars
> ### Title: Motor Trend Car Road Tests
> ### Aliases: mtcars
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> pairs(mtcars, main = "mtcars data", gap = 1/4)
> coplot(mpg ~ disp | as.factor(cyl), data = mtcars,
+        panel = panel.smooth, rows = 1)
> ## possibly more meaningful, e.g., for summary() or bivariate plots:
> mtcars2 <- within(mtcars, {
+    vs <- factor(vs, labels = c("V", "S"))
+    am <- factor(am, labels = c("automatic", "manual"))
+    cyl  <- ordered(cyl)
+    gear <- ordered(gear)
+    carb <- ordered(carb)
+ })
> summary(mtcars2)
      mpg        cyl         disp             hp             drat      
 Min.   :10.40   4:11   Min.   : 71.1   Min.   : 52.0   Min.   :2.760  
 1st Qu.:15.43   6: 7   1st Qu.:120.8   1st Qu.: 96.5   1st Qu.:3.080  
 Median :19.20   8:14   Median :196.3   Median :123.0   Median :3.695  
 Mean   :20.09          Mean   :230.7   Mean   :146.7   Mean   :3.597  
 3rd Qu.:22.80          3rd Qu.:326.0   3rd Qu.:180.0   3rd Qu.:3.920  
 Max.   :33.90          Max.   :472.0   Max.   :335.0   Max.   :4.930  
       wt             qsec       vs             am     gear   carb  
 Min.   :1.513   Min.   :14.50   V:18   automatic:19   3:15   1: 7  
 1st Qu.:2.581   1st Qu.:16.89   S:14   manual   :13   4:12   2:10  
 Median :3.325   Median :17.71                         5: 5   3: 3  
 Mean   :3.217   Mean   :17.85                                4:10  
 3rd Qu.:3.610   3rd Qu.:18.90                                6: 1  
 Max.   :5.424   Max.   :22.90                                8: 1  
> 
> 
> 
> cleanEx()
> nameEx("nhtemp")
> ### * nhtemp
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: nhtemp
> ### Title: Average Yearly Temperatures in New Haven
> ### Aliases: nhtemp
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> plot(nhtemp, main = "nhtemp data",
+   ylab = "Mean annual temperature in New Haven, CT (deg. F)")
> 
> 
> 
> cleanEx()
> nameEx("nottem")
> ### * nottem
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: nottem
> ### Title: Average Monthly Temperatures at Nottingham, 1920-1939
> ### Aliases: nottem
> ### Keywords: datasets
> 
> ### ** Examples
> 
> 
> 
> cleanEx()
> nameEx("npk")
> ### * npk
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: npk
> ### Title: Classical N, P, K Factorial Experiment
> ### Aliases: npk
> ### Keywords: datasets
> 
> ### ** Examples
> 
> 
> cleanEx()
> nameEx("occupationalStatus")
> ### * occupationalStatus
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: occupationalStatus
> ### Title: Occupational Status of Fathers and their Sons
> ### Aliases: occupationalStatus
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> 
> plot(occupationalStatus)
> 
> ##  Fit a uniform association model separating diagonal effects
> Diag <- as.factor(diag(1:8))
> Rscore <- scale(as.numeric(row(occupationalStatus)), scale = FALSE)
> Cscore <- scale(as.numeric(col(occupationalStatus)), scale = FALSE)
> modUnif <- glm(Freq ~ origin + destination + Diag + Rscore:Cscore,
+                family = poisson, data = occupationalStatus)
> 
> summary(modUnif)

Call:
glm(formula = Freq ~ origin + destination + Diag + Rscore:Cscore, 
    family = poisson, data = occupationalStatus)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.6521  -0.6267   0.0000   0.5913   2.0964  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept)   0.568592   0.183358   3.101 0.001929 ** 
origin2       0.431314   0.149415   2.887 0.003893 ** 
origin3       1.461862   0.131141  11.147  < 2e-16 ***
origin4       1.788731   0.126588  14.130  < 2e-16 ***
origin5       0.441011   0.144844   3.045 0.002329 ** 
origin6       2.491735   0.121219  20.556  < 2e-16 ***
origin7       1.127536   0.129032   8.738  < 2e-16 ***
origin8       0.796445   0.131863   6.040 1.54e-09 ***
destination2  0.873202   0.166902   5.232 1.68e-07 ***
destination3  1.813992   0.153861  11.790  < 2e-16 ***
destination4  2.082515   0.150887  13.802  < 2e-16 ***
destination5  1.366383   0.155590   8.782  < 2e-16 ***
destination6  2.816369   0.146054  19.283  < 2e-16 ***
destination7  1.903918   0.147810  12.881  < 2e-16 ***
destination8  1.398585   0.151658   9.222  < 2e-16 ***
Diag1         1.665495   0.237383   7.016 2.28e-12 ***
Diag2         0.959681   0.212122   4.524 6.06e-06 ***
Diag3         0.021750   0.156530   0.139 0.889490    
Diag4         0.226399   0.124364   1.820 0.068689 .  
Diag5         0.808646   0.229754   3.520 0.000432 ***
Diag6         0.132277   0.077191   1.714 0.086597 .  
Diag7         0.506709   0.115936   4.371 1.24e-05 ***
Diag8         0.221880   0.134803   1.646 0.099771 .  
Rscore:Cscore 0.136974   0.007489  18.289  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 4679.004  on 63  degrees of freedom
Residual deviance:   58.436  on 40  degrees of freedom
AIC: 428.78

Number of Fisher Scoring iterations: 4

> plot(modUnif) # 4 plots, with warning about  h_ii ~= 1
Warning: not plotting observations with leverage one:
  1, 10, 19, 28, 37, 46, 55, 64
Warning: not plotting observations with leverage one:
  1, 10, 19, 28, 37, 46, 55, 64
> 
> 
> 
> cleanEx()
> nameEx("precip")
> ### * precip
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: precip
> ### Title: Annual Precipitation in US Cities
> ### Aliases: precip
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> dotchart(precip[order(precip)], main = "precip data")
> title(sub = "Average annual precipitation (in.)")
> 
> ## Old ("wrong") version of dataset (just name change):
> precip.O <- local({
+    p <- precip; names(p)[names(p) == "Cincinnati"] <- "Cincinati" ; p })
> stopifnot(all(precip == precip.O),
+ 	  match("Cincinnati", names(precip)) == 46,
+ 	  identical(names(precip)[-46], names(precip.O)[-46]))
> 
> 
> 
> cleanEx()
> nameEx("presidents")
> ### * presidents
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: presidents
> ### Title: Quarterly Approval Ratings of US Presidents
> ### Aliases: presidents
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> plot(presidents, las = 1, ylab = "Approval rating (%)",
+      main = "presidents data")
> 
> 
> 
> cleanEx()
> nameEx("pressure")
> ### * pressure
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: pressure
> ### Title: Vapor Pressure of Mercury as a Function of Temperature
> ### Aliases: pressure
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> plot(pressure, xlab = "Temperature (deg C)",
+      ylab = "Pressure (mm of Hg)",
+      main = "pressure data: Vapor Pressure of Mercury")
> plot(pressure, xlab = "Temperature (deg C)",  log = "y",
+      ylab = "Pressure (mm of Hg)",
+      main = "pressure data: Vapor Pressure of Mercury")
> 
> 
> 
> cleanEx()
> nameEx("quakes")
> ### * quakes
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: quakes
> ### Title: Locations of Earthquakes off Fiji
> ### Aliases: quakes
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> pairs(quakes, main = "Fiji Earthquakes, N = 1000", cex.main = 1.2, pch = ".")
> 
> 
> 
> cleanEx()
> nameEx("randu")
> ### * randu
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: randu
> ### Title: Random Numbers from Congruential Generator RANDU
> ### Aliases: randu
> ### Keywords: datasets
> 
> ### ** Examples
> 
> 
> 
> 
> cleanEx()
> nameEx("sleep")
> ### * sleep
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: sleep
> ### Title: Student's Sleep Data
> ### Aliases: sleep
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats)
> ## Student's paired t-test
> with(sleep,
+      t.test(extra[group == 1],
+             extra[group == 2], paired = TRUE))

	Paired t-test

data:  extra[group == 1] and extra[group == 2]
t = -4.0621, df = 9, p-value = 0.002833
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2.4598858 -0.7001142
sample estimates:
mean of the differences 
                  -1.58 

> 
> ## The sleep *prolongations*
> sleep1 <- with(sleep, extra[group == 2] - extra[group == 1])
> summary(sleep1)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    1.05    1.30    1.58    1.70    4.60 
> stripchart(sleep1, method = "stack", xlab = "hours",
+            main = "Sleep prolongation (n = 10)")
> boxplot(sleep1, horizontal = TRUE, add = TRUE,
+         at = .6, pars = list(boxwex = 0.5, staplewex = 0.25))
> 
> 
> 
> cleanEx()
> nameEx("stackloss")
> ### * stackloss
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: stackloss
> ### Title: Brownlee's Stack Loss Plant Data
> ### Aliases: stackloss stack.loss stack.x
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats)
> summary(lm.stack <- lm(stack.loss ~ stack.x))

Call:
lm(formula = stack.loss ~ stack.x)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.2377 -1.7117 -0.4551  2.3614  5.6978 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)       -39.9197    11.8960  -3.356  0.00375 ** 
stack.xAir.Flow     0.7156     0.1349   5.307  5.8e-05 ***
stack.xWater.Temp   1.2953     0.3680   3.520  0.00263 ** 
stack.xAcid.Conc.  -0.1521     0.1563  -0.973  0.34405    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.243 on 17 degrees of freedom
Multiple R-squared:  0.9136,	Adjusted R-squared:  0.8983 
F-statistic:  59.9 on 3 and 17 DF,  p-value: 3.016e-09

> 
> 
> 
> cleanEx()
> nameEx("sunspot.month")
> ### * sunspot.month
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: sunspot.month
> ### Title: Monthly Sunspot Data, from 1749 to "Present"
> ### Aliases: sunspot.month
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ## Compare the monthly series
> plot (sunspot.month,
+       main="sunspot.month & sunspots [package'datasets']", col=2)
> lines(sunspots) # -> faint differences where they overlap
> 
> ## Now look at the difference :
> all(tsp(sunspots)     [c(1,3)] ==
+     tsp(sunspot.month)[c(1,3)]) ## Start & Periodicity are the same
[1] TRUE
> n1 <- length(sunspots)
> table(eq <- sunspots == sunspot.month[1:n1]) #>  132  are different !

FALSE  TRUE 
  143  2677 
> i <- which(!eq)
> rug(time(eq)[i])
> s1 <- sunspots[i] ; s2 <- sunspot.month[i]
> cbind(i = i, time = time(sunspots)[i], sunspots = s1, ss.month = s2,
+       perc.diff = round(100*2*abs(s1-s2)/(s1+s2), 1))
          i     time sunspots ss.month perc.diff
  [1,]   55 1753.500     22.2     22.0       0.9
  [2,]  838 1818.750     31.7     31.6       0.3
  [3,]  841 1819.000     32.5     32.8       0.9
  [4,]  862 1820.750      9.0      8.9       1.1
  [5,]  864 1820.917      9.7      9.1       6.4
  [6,]  866 1821.083      4.3      4.2       2.4
  [7,]  876 1821.917      0.0      0.2     200.0
  [8,]  901 1824.000     21.6     21.7       0.5
  [9,]  917 1825.333     15.4     15.5       0.6
 [10,]  920 1825.583     25.4     25.7       1.2
 [11,]  943 1827.500     42.9     42.3       1.4
 [12,]  946 1827.750     57.2     56.1       1.9
 [13,]  955 1828.500     54.3     54.2       0.2
 [14,]  960 1828.917     46.6     46.9       0.6
 [15,]  965 1829.333     67.5     67.4       0.1
 [16,]  968 1829.583     78.3     77.6       0.9
 [17,]  976 1830.250    107.1    106.3       0.7
 [18,]  988 1831.250     54.6     54.5       0.2
 [19,]  992 1831.583     54.9     55.0       0.2
 [20,]  994 1831.750     46.2     46.3       0.2
 [21,]  998 1832.083     55.5     55.6       0.2
 [22,] 1003 1832.500     13.9     14.0       0.7
 [23,] 1047 1836.167     98.1     98.2       0.1
 [24,] 1061 1837.333    111.3    111.7       0.4
 [25,] 1081 1839.000    107.6    105.6       1.9
 [26,] 1087 1839.500     84.7     84.8       0.1
 [27,] 1090 1839.750     90.8     90.9       0.1
 [28,] 1092 1839.917     63.6     63.7       0.2
 [29,] 1095 1840.167     55.5     67.8      20.0
 [30,] 1102 1840.750     49.8     55.0       9.9
 [31,] 1105 1841.000     24.0     24.1       0.4
 [32,] 1108 1841.250     42.6     40.2       5.8
 [33,] 1109 1841.333     67.4     67.5       0.1
 [34,] 1113 1841.667     35.1     36.5       3.9
 [35,] 1124 1842.583     26.5     26.6       0.4
 [36,] 1125 1842.667     18.5     18.4       0.5
 [37,] 1132 1843.250      8.8      9.5       7.7
 [38,] 1145 1844.333     12.0     11.6       3.4
 [39,] 1149 1844.667      6.9      7.0       1.4
 [40,] 1156 1845.250     56.9     57.0       0.2
 [41,] 1168 1846.250     69.2     69.3       0.1
 [42,] 1185 1847.667    161.2    160.9       0.2
 [43,] 1191 1848.167    108.9    108.6       0.3
 [44,] 1194 1848.417    123.8    129.0       4.1
 [45,] 1196 1848.583    132.5    132.6       0.1
 [46,] 1200 1848.917    159.9    159.5       0.3
 [47,] 1201 1849.000    156.7    157.0       0.2
 [48,] 1202 1849.083    131.7    131.8       0.1
 [49,] 1203 1849.167     96.5     96.2       0.3
 [50,] 1206 1849.417     81.2     81.1       0.1
 [51,] 1208 1849.583     61.3     67.7       9.9
 [52,] 1211 1849.833     99.7     99.0       0.7
 [53,] 1224 1850.917     60.0     61.0       1.7
 [54,] 1235 1851.833     50.9     51.0       0.2
 [55,] 1238 1852.083     67.5     66.4       1.6
 [56,] 1243 1852.500     42.0     42.1       0.2
 [57,] 1256 1853.583     50.4     50.5       0.2
 [58,] 1258 1853.750     42.3     42.4       0.2
 [59,] 1264 1854.250     26.4     26.5       0.4
 [60,] 1270 1854.750     12.7     12.6       0.8
 [61,] 1272 1854.917     21.4     21.6       0.9
 [62,] 1282 1855.750      9.7      9.6       1.0
 [63,] 1283 1855.833      4.3      4.2       2.4
 [64,] 1290 1856.417      5.0      5.2       3.9
 [65,] 1301 1857.333     29.2     28.5       2.4
 [66,] 1333 1860.000     81.5     82.4       1.1
 [67,] 1334 1860.083     88.0     88.3       0.3
 [68,] 1346 1861.083     77.8     77.7       0.1
 [69,] 1350 1861.417     87.8     88.1       0.3
 [70,] 1366 1862.750     42.0     41.9       0.2
 [71,] 1407 1866.167     24.6     24.5       0.4
 [72,] 1424 1867.583      4.9      4.8       2.1
 [73,] 1427 1867.833      9.3      9.6       3.2
 [74,] 1429 1868.000     15.6     15.5       0.6
 [75,] 1430 1868.083     15.8     15.7       0.6
 [76,] 1435 1868.500     28.6     29.0       1.4
 [77,] 1437 1868.667     43.8     47.2       7.5
 [78,] 1438 1868.750     61.7     61.6       0.2
 [79,] 1442 1869.083     59.3     59.9       1.0
 [80,] 1445 1869.333    104.0    103.9       0.1
 [81,] 1450 1869.750     59.4     59.3       0.2
 [82,] 1451 1869.833     77.4     78.1       0.9
 [83,] 1452 1869.917    104.3    104.4       0.1
 [84,] 1455 1870.167    159.4    157.5       1.2
 [85,] 1472 1871.583    110.0    110.1       0.1
 [86,] 1476 1871.917     90.3     90.4       0.1
 [87,] 1486 1872.750    103.5    102.6       0.9
 [88,] 1497 1873.667     47.5     47.1       0.8
 [89,] 1498 1873.750     47.4     47.1       0.6
 [90,] 1514 1875.083     22.2     21.5       3.2
 [91,] 1527 1876.167     31.2     30.6       1.9
 [92,] 1539 1877.167     11.7     11.9       1.7
 [93,] 1541 1877.333     21.2     21.6       1.9
 [94,] 1542 1877.417     13.4     14.2       5.8
 [95,] 1543 1877.500      5.9      6.0       1.7
 [96,] 1545 1877.667     16.4     16.9       3.0
 [97,] 1547 1877.833     14.5     14.2       2.1
 [98,] 1548 1877.917      2.3      2.2       4.4
 [99,] 1550 1878.083      6.0      6.6       9.5
[100,] 1553 1878.333      5.8      5.9       1.7
[101,] 1561 1879.000      0.8      1.0      22.2
[102,] 1571 1879.833     12.9     13.1       1.5
[103,] 1572 1879.917      7.2      7.3       1.4
[104,] 1574 1880.083     27.5     27.2       1.1
[105,] 1575 1880.167     19.5     19.3       1.0
[106,] 1576 1880.250     19.3     19.5       1.0
[107,] 1588 1881.250     51.7     51.6       0.2
[108,] 1592 1881.583     58.0     58.4       0.7
[109,] 1594 1881.750     64.0     64.4       0.6
[110,] 1598 1882.083     69.3     69.5       0.3
[111,] 1599 1882.167     67.5     66.8       1.0
[112,] 1613 1883.333     32.1     31.5       1.9
[113,] 1614 1883.417     76.5     76.3       0.3
[114,] 1623 1884.167     86.8     87.5       0.8
[115,] 1643 1885.833     33.3     30.9       7.5
[116,] 1656 1886.917     12.4     13.0       4.7
[117,] 1663 1887.500     23.3     23.4       0.4
[118,] 1683 1889.167      7.0      6.7       4.4
[119,] 1687 1889.500      9.7      9.4       3.1
[120,] 1712 1891.583     33.2     33.0       0.6
[121,] 1716 1891.917     32.3     32.5       0.6
[122,] 1723 1892.500     76.8     76.5       0.4
[123,] 1734 1893.417     88.2     89.9       1.9
[124,] 1735 1893.500     88.8     88.6       0.2
[125,] 1738 1893.750     79.7     80.0       0.4
[126,] 1774 1896.750     28.4     28.7       1.1
[127,] 1837 1902.000      5.2      5.5       5.6
[128,] 2126 1926.083     70.0     69.9       0.1
[129,] 2151 1928.167     85.4     85.5       0.1
[130,] 2153 1928.333     76.9     77.0       0.1
[131,] 2162 1929.083     64.1     62.8       2.0
[132,] 2174 1930.083     49.2     49.9       1.4
[133,] 2233 1935.000     18.9     18.6       1.6
[134,] 2315 1941.833     38.3     38.4       0.3
[135,] 2329 1943.000     12.4     12.5       0.8
[136,] 2378 1947.083    113.4    133.4      16.2
[137,] 2427 1951.167     59.9     55.9       6.9
[138,] 2498 1957.083    130.2    130.3       0.1
[139,] 2552 1961.583     55.9     55.8       0.2
[140,] 2556 1961.917     40.0     39.9       0.3
[141,] 2594 1965.083     14.2     14.3       0.7
[142,] 2790 1981.417     90.0     90.9       1.0
[143,] 2819 1983.833     33.3     33.4       0.3
> 
> ## How to recreate the "old" sunspot.month (R <= 3.0.3):
> .sunspot.diff <- cbind(
+     i = c(1202L, 1256L, 1258L, 1301L, 1407L, 1429L, 1452L, 1455L,
+           1663L, 2151L, 2329L, 2498L, 2594L, 2694L, 2819L),
+     res10 = c(1L, 1L, 1L, -1L, -1L, -1L, 1L, -1L,
+           1L, 1L, 1L, 1L, 1L, 20L, 1L))
> ssm0 <- sunspot.month[1:2988]
> with(as.data.frame(.sunspot.diff), ssm0[i] <<- ssm0[i] - res10/10)
> sunspot.month.0 <- ts(ssm0, start = 1749, frequency = 12)
> 
> 
> 
> cleanEx()
> nameEx("sunspot.year")
> ### * sunspot.year
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: sunspot.year
> ### Title: Yearly Sunspot Data, 1700-1988
> ### Aliases: sunspot.year
> ### Keywords: datasets
> 
> ### ** Examples
> 
> utils::str(sm <- sunspots)# the monthly version we keep unchanged
 Time-Series [1:2820] from 1749 to 1984: 58 62.6 70 55.7 85 83.5 94.8 66.3 75.9 75.5 ...
> utils::str(sy <- sunspot.year)
 Time-Series [1:289] from 1700 to 1988: 5 11 16 23 36 58 29 20 10 8 ...
> ## The common time interval
> (t1 <- c(max(start(sm), start(sy)),     1)) # Jan 1749
[1] 1749    1
> (t2 <- c(min(  end(sm)[1],end(sy)[1]), 12)) # Dec 1983
[1] 1983   12
> s.m <- window(sm, start=t1, end=t2)
> s.y <- window(sy, start=t1, end=t2[1]) # {irrelevant warning}
> stopifnot(length(s.y) * 12 == length(s.m),
+           ## The yearly series *is* close to the averages of the monthly one:
+           all.equal(s.y, aggregate(s.m, FUN = mean), tol = 0.0020))
> ## NOTE: Strangely, correctly weighting the number of days per month
> ##       (using 28.25 for February) is *not* closer than the simple mean:
> ndays <- c(31, 28.25, rep(c(31,30, 31,30, 31), 2))
> all.equal(s.y, aggregate(s.m, FUN = mean))                     # 0.0013
[1] "Mean relative difference: 0.001312539"
> all.equal(s.y, aggregate(s.m, FUN = weighted.mean, w = ndays)) # 0.0017
[1] "Mean relative difference: 0.001692215"
> 
> 
> 
> cleanEx()
> nameEx("sunspots")
> ### * sunspots
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: sunspots
> ### Title: Monthly Sunspot Numbers, 1749-1983
> ### Aliases: sunspots
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> plot(sunspots, main = "sunspots data", xlab = "Year",
+      ylab = "Monthly sunspot numbers")
> 
> 
> 
> cleanEx()
> nameEx("swiss")
> ### * swiss
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: swiss
> ### Title: Swiss Fertility and Socioeconomic Indicators (1888) Data
> ### Aliases: swiss
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> pairs(swiss, panel = panel.smooth, main = "swiss data",
+       col = 3 + (swiss$Catholic > 50))
> summary(lm(Fertility ~ . , data = swiss))

Call:
lm(formula = Fertility ~ ., data = swiss)

Residuals:
     Min       1Q   Median       3Q      Max 
-15.2743  -5.2617   0.5032   4.1198  15.3213 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      66.91518   10.70604   6.250 1.91e-07 ***
Agriculture      -0.17211    0.07030  -2.448  0.01873 *  
Examination      -0.25801    0.25388  -1.016  0.31546    
Education        -0.87094    0.18303  -4.758 2.43e-05 ***
Catholic          0.10412    0.03526   2.953  0.00519 ** 
Infant.Mortality  1.07705    0.38172   2.822  0.00734 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 7.165 on 41 degrees of freedom
Multiple R-squared:  0.7067,	Adjusted R-squared:  0.671 
F-statistic: 19.76 on 5 and 41 DF,  p-value: 5.594e-10

> 
> 
> 
> cleanEx()
> nameEx("trees")
> ### * trees
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: trees
> ### Title: Diameter, Height and Volume for Black Cherry Trees
> ### Aliases: trees
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> pairs(trees, panel = panel.smooth, main = "trees data")
> plot(Volume ~ Girth, data = trees, log = "xy")
> coplot(log(Volume) ~ log(Girth) | Height, data = trees,
+        panel = panel.smooth)
> summary(fm1 <- lm(log(Volume) ~ log(Girth), data = trees))

Call:
lm(formula = log(Volume) ~ log(Girth), data = trees)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.205999 -0.068702  0.001011  0.072585  0.247963 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -2.35332    0.23066  -10.20 4.18e-11 ***
log(Girth)   2.19997    0.08983   24.49  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.115 on 29 degrees of freedom
Multiple R-squared:  0.9539,	Adjusted R-squared:  0.9523 
F-statistic: 599.7 on 1 and 29 DF,  p-value: < 2.2e-16

> summary(fm2 <- update(fm1, ~ . + log(Height), data = trees))

Call:
lm(formula = log(Volume) ~ log(Girth) + log(Height), data = trees)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.168561 -0.048488  0.002431  0.063637  0.129223 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -6.63162    0.79979  -8.292 5.06e-09 ***
log(Girth)   1.98265    0.07501  26.432  < 2e-16 ***
log(Height)  1.11712    0.20444   5.464 7.81e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.08139 on 28 degrees of freedom
Multiple R-squared:  0.9777,	Adjusted R-squared:  0.9761 
F-statistic: 613.2 on 2 and 28 DF,  p-value: < 2.2e-16

> step(fm2)
Start:  AIC=-152.69
log(Volume) ~ log(Girth) + log(Height)

              Df Sum of Sq    RSS      AIC
<none>                     0.1855 -152.685
- log(Height)  1    0.1978 0.3832 -132.185
- log(Girth)   1    4.6275 4.8130  -53.743

Call:
lm(formula = log(Volume) ~ log(Girth) + log(Height), data = trees)

Coefficients:
(Intercept)   log(Girth)  log(Height)  
     -6.632        1.983        1.117  

> ## i.e., Volume ~= c * Height * Girth^2  seems reasonable
> 
> 
> 
> cleanEx()
> nameEx("uspop")
> ### * uspop
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: uspop
> ### Title: Populations Recorded by the US Census
> ### Aliases: uspop
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> plot(uspop, log = "y", main = "uspop data", xlab = "Year",
+      ylab = "U.S. Population (millions)")
> 
> 
> 
> cleanEx()
> nameEx("volcano")
> ### * volcano
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: volcano
> ### Title: Topographic Information on Auckland's Maunga Whau Volcano
> ### Aliases: volcano
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(grDevices); require(graphics)
> filled.contour(volcano, color.palette = terrain.colors, asp = 1)
> title(main = "volcano data: filled contour map")
> 
> 
> 
> cleanEx()
> nameEx("warpbreaks")
> ### * warpbreaks
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: warpbreaks
> ### Title: The Number of Breaks in Yarn during Weaving
> ### Aliases: warpbreaks
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> summary(warpbreaks)
     breaks      wool   tension
 Min.   :10.00   A:27   L:18   
 1st Qu.:18.25   B:27   M:18   
 Median :26.00          H:18   
 Mean   :28.15                 
 3rd Qu.:34.00                 
 Max.   :70.00                 
> opar <- par(mfrow = c(1, 2), oma = c(0, 0, 1.1, 0))
> plot(breaks ~ tension, data = warpbreaks, col = "lightgray",
+      varwidth = TRUE, subset = wool == "A", main = "Wool A")
> plot(breaks ~ tension, data = warpbreaks, col = "lightgray",
+      varwidth = TRUE, subset = wool == "B", main = "Wool B")
> mtext("warpbreaks data", side = 3, outer = TRUE)
> par(opar)
> summary(fm1 <- lm(breaks ~ wool*tension, data = warpbreaks))

Call:
lm(formula = breaks ~ wool * tension, data = warpbreaks)

Residuals:
     Min       1Q   Median       3Q      Max 
-19.5556  -6.8889  -0.6667   7.1944  25.4444 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)      44.556      3.647  12.218 2.43e-16 ***
woolB           -16.333      5.157  -3.167 0.002677 ** 
tensionM        -20.556      5.157  -3.986 0.000228 ***
tensionH        -20.000      5.157  -3.878 0.000320 ***
woolB:tensionM   21.111      7.294   2.895 0.005698 ** 
woolB:tensionH   10.556      7.294   1.447 0.154327    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10.94 on 48 degrees of freedom
Multiple R-squared:  0.3778,	Adjusted R-squared:  0.3129 
F-statistic: 5.828 on 5 and 48 DF,  p-value: 0.0002772

> anova(fm1)
Analysis of Variance Table

Response: breaks
             Df Sum Sq Mean Sq F value    Pr(>F)    
wool          1  450.7  450.67  3.7653 0.0582130 .  
tension       2 2034.3 1017.13  8.4980 0.0006926 ***
wool:tension  2 1002.8  501.39  4.1891 0.0210442 *  
Residuals    48 5745.1  119.69                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("women")
> ### * women
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: women
> ### Title: Average Heights and Weights for American Women
> ### Aliases: women
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(graphics)
> plot(women, xlab = "Height (in)", ylab = "Weight (lb)",
+      main = "women data: American women aged 30-39")
> 
> 
> 
> cleanEx()
> nameEx("zCO2")
> ### * zCO2
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: CO2
> ### Title: Carbon Dioxide Uptake in Grass Plants
> ### Aliases: CO2
> ### Keywords: datasets
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ## Don't show: 
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> coplot(uptake ~ conc | Plant, data = CO2, show.given = FALSE, type = "b")
> ## fit the data for the first plant
> fm1 <- nls(uptake ~ SSasymp(conc, Asym, lrc, c0),
+    data = CO2, subset = Plant == "Qn1")
> summary(fm1)

Formula: uptake ~ SSasymp(conc, Asym, lrc, c0)

Parameters:
     Estimate Std. Error t value Pr(>|t|)    
Asym  38.1398     0.9164  41.620 1.99e-06 ***
lrc  -34.2766    18.9661  -1.807    0.145    
c0    -4.3806     0.2042 -21.457 2.79e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.663 on 4 degrees of freedom

> ## fit each plant separately
> fmlist <- list()
> for (pp in levels(CO2$Plant)) {
+   fmlist[[pp]] <- nls(uptake ~ SSasymp(conc, Asym, lrc, c0),
+       data = CO2, subset = Plant == pp)
+ }
> ## check the coefficients by plant
> print(sapply(fmlist, coef), digits = 3)
        Qn1    Qn2    Qn3   Qc1    Qc3    Qc2    Mn3    Mn2   Mn1   Mc2     Mc3
Asym  38.14  42.87  44.23 36.43  40.68  39.82  28.48  32.13 34.08 13.56   18.54
lrc  -34.28 -29.66 -37.63 -9.90 -11.54 -51.53 -17.37 -29.04 -8.81 -1.98 -136.11
c0    -4.38  -4.67  -4.49 -4.86  -4.95  -4.46  -4.59  -4.47 -5.06 -4.56   -3.47
       Mc1
Asym 21.79
lrc   2.45
c0   -5.14
> 
> 
> 
> ### * <FOOTER>
> ###
> cleanEx()
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
Time elapsed:  1.98 0.061 2.051 0 0 
> grDevices::dev.off()
null device 
          1 
> ###
> ### Local variables: ***
> ### mode: outline-minor ***
> ### outline-regexp: "\\(> \\)?### [*]+" ***
> ### End: ***
> quit('no')