R version 2.15.1 Patched (2012-07-02 r59715) -- "Roasted Marshmallows"
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-unknown-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.

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 <- "splines"
> source(file.path(R.home("share"), "R", "examples-header.R"))
> options(warn = 1)
> library('splines')
> 
> assign(".oldSearch", search(), pos = 'CheckExEnv')
> cleanEx()
> nameEx("asVector")
> ### * asVector
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: asVector
> ### Title: Coerce an Object to a Vector
> ### Aliases: asVector
> ### Keywords: models
> 
> ### ** Examples
> 
> require(stats)
> ispl <- interpSpline( weight ~ height,  women )
> pred <- predict(ispl)
> class(pred)
[1] "xyVector"
> utils::str(pred)
List of 2
 $ x: num [1:51] 58 58.3 58.6 58.8 59.1 ...
 $ y: num [1:51] 115 115 116 117 117 ...
 - attr(*, "class")= chr "xyVector"
> asVector(pred)
 [1] 115.0000 115.4908 116.0170 116.6137 117.3153 118.1214 118.9894 119.8747
 [9] 120.7384 121.5787 122.4078 123.2380 124.0759 124.9181 125.7601 126.5980
[17] 127.4340 128.2735 129.1220 129.9792 130.8301 131.6572 132.4454 133.2228
[25] 134.0528 135.0000 136.1000 137.2727 138.4090 139.4026 140.2416 141.0276
[33] 141.8690 142.8564 143.9707 145.1507 146.3356 147.4868 148.6046 149.6935
[41] 150.7604 151.8353 152.9613 154.1817 155.5178 156.9329 158.3808 159.8173
[49] 161.2269 162.6180 164.0000
> 
> 
> 
> cleanEx()
> nameEx("backSpline")
> ### * backSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: backSpline
> ### Title: Monotone Inverse Spline
> ### Aliases: backSpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics)
> ispl <- interpSpline( women$height, women$weight )
> bspl <- backSpline( ispl )
> plot( bspl )                   # plots over the range of the knots
> points( women$weight, women$height )
> 
> 
> 
> cleanEx()
> nameEx("bs")
> ### * bs
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: bs
> ### Title: B-Spline Basis for Polynomial Splines
> ### Aliases: bs
> ### Keywords: smooth
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> bs(women$height, df = 5)
                 1           2           3            4           5
 [1,] 0.000000e+00 0.000000000 0.000000000 0.000000e+00 0.000000000
 [2,] 4.534439e-01 0.059857872 0.001639942 0.000000e+00 0.000000000
 [3,] 5.969388e-01 0.203352770 0.013119534 0.000000e+00 0.000000000
 [4,] 5.338010e-01 0.376366618 0.044278426 0.000000e+00 0.000000000
 [5,] 3.673469e-01 0.524781341 0.104956268 0.000000e+00 0.000000000
 [6,] 2.001640e-01 0.595025510 0.204719388 9.110787e-05 0.000000000
 [7,] 9.110787e-02 0.566326531 0.336734694 5.830904e-03 0.000000000
 [8,] 3.125000e-02 0.468750000 0.468750000 3.125000e-02 0.000000000
 [9,] 5.830904e-03 0.336734694 0.566326531 9.110787e-02 0.000000000
[10,] 9.110787e-05 0.204719388 0.595025510 2.001640e-01 0.000000000
[11,] 0.000000e+00 0.104956268 0.524781341 3.673469e-01 0.002915452
[12,] 0.000000e+00 0.044278426 0.376366618 5.338010e-01 0.045553936
[13,] 0.000000e+00 0.013119534 0.203352770 5.969388e-01 0.186588921
[14,] 0.000000e+00 0.001639942 0.059857872 4.534439e-01 0.485058309
[15,] 0.000000e+00 0.000000000 0.000000000 0.000000e+00 1.000000000
attr(,"degree")
[1] 3
attr(,"knots")
33.33333% 66.66667% 
 62.66667  67.33333 
attr(,"Boundary.knots")
[1] 58 72
attr(,"intercept")
[1] FALSE
attr(,"class")
[1] "bs"     "basis"  "matrix"
> summary(fm1 <- lm(weight ~ bs(height, df = 5), data = women))

Call:
lm(formula = weight ~ bs(height, df = 5), data = women)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.31764 -0.13441  0.03922  0.11096  0.35086 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         114.8799     0.2167 530.146  < 2e-16 ***
bs(height, df = 5)1   3.4657     0.4595   7.543 3.53e-05 ***
bs(height, df = 5)2  13.0300     0.3965  32.860 1.10e-10 ***
bs(height, df = 5)3  27.6161     0.4571  60.415 4.70e-13 ***
bs(height, df = 5)4  40.8481     0.3866 105.669 3.09e-15 ***
bs(height, df = 5)5  49.1296     0.3090 158.979  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 0.2276 on 9 degrees of freedom
Multiple R-squared: 0.9999,	Adjusted R-squared: 0.9998 
F-statistic: 1.298e+04 on 5 and 9 DF,  p-value: < 2.2e-16 

> 
> ## example of safe prediction
> plot(women, xlab = "Height (in)", ylab = "Weight (lb)")
> ht <- seq(57, 73, length.out = 200)
> lines(ht, predict(fm1, data.frame(height=ht)))
Warning in bs(height, degree = 3L, knots = c(62.6666666666667, 67.3333333333333 :
  some 'x' values beyond boundary knots may cause ill-conditioned bases
> ## Don't show: 
> ## Consistency:
> x <- c(1:3,5:6)
> stopifnot(identical(bs(x), bs(x, df = 3)),
+           identical(bs(x, df=4), bs(x, df=4, knots=NULL)),# not true till 2.15.2
+           !is.null(kk <- attr(bs(x), "knots")),# not true till 1.5.1
+           length(kk) == 0)
> ## End Don't show
> 
> 
> cleanEx()
> nameEx("interpSpline")
> ### * interpSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: interpSpline
> ### Title: Create an Interpolation Spline
> ### Aliases: interpSpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics); require(stats)
> ispl <- interpSpline( women$height, women$weight )
> ispl2 <- interpSpline( weight ~ height,  women )
> # ispl and ispl2 should be the same
> plot( predict( ispl, seq( 55, 75, length.out = 51 ) ), type = "l" )
> points( women$height, women$weight )
> plot( ispl )    # plots over the range of the knots
> points( women$height, women$weight )
> splineKnots( ispl )
 [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
> 
> 
> 
> cleanEx()
> nameEx("ns")
> ### * ns
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: ns
> ### Title: Generate a Basis Matrix for Natural Cubic Splines
> ### Aliases: ns
> ### Keywords: smooth
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ns(women$height, df = 5)
                 1            2           3          4             5
 [1,] 0.000000e+00 0.000000e+00  0.00000000 0.00000000  0.0000000000
 [2,] 7.592323e-03 0.000000e+00 -0.08670223 0.26010669 -0.1734044626
 [3,] 6.073858e-02 0.000000e+00 -0.15030440 0.45091320 -0.3006088020
 [4,] 2.047498e-01 6.073858e-05 -0.16778345 0.50335034 -0.3355668952
 [5,] 4.334305e-01 1.311953e-02 -0.13244035 0.39732106 -0.2648807067
 [6,] 6.256681e-01 8.084305e-02 -0.07399720 0.22199159 -0.1479943948
 [7,] 6.477162e-01 2.468416e-01 -0.02616007 0.07993794 -0.0532919575
 [8,] 4.791667e-01 4.791667e-01  0.01406302 0.02031093 -0.0135406187
 [9,] 2.468416e-01 6.477162e-01  0.09733619 0.02286023 -0.0152401533
[10,] 8.084305e-02 6.256681e-01  0.27076826 0.06324188 -0.0405213106
[11,] 1.311953e-02 4.334305e-01  0.48059836 0.12526031 -0.0524087186
[12,] 6.073858e-05 2.047498e-01  0.59541597 0.19899261  0.0007809246
[13,] 0.000000e+00 6.073858e-02  0.50097182 0.27551020  0.1627793975
[14,] 0.000000e+00 7.592323e-03  0.22461127 0.35204082  0.4157555879
[15,] 0.000000e+00 0.000000e+00 -0.14285714 0.42857143  0.7142857143
attr(,"degree")
[1] 3
attr(,"knots")
 20%  40%  60%  80% 
60.8 63.6 66.4 69.2 
attr(,"Boundary.knots")
[1] 58 72
attr(,"intercept")
[1] FALSE
attr(,"class")
[1] "ns"     "basis"  "matrix"
> summary(fm1 <- lm(weight ~ ns(height, df = 5), data = women))

Call:
lm(formula = weight ~ ns(height, df = 5), data = women)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.38333 -0.12585  0.07083  0.15401  0.30426 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         114.7447     0.2338  490.88  < 2e-16 ***
ns(height, df = 5)1  15.9474     0.3699   43.12 9.69e-12 ***
ns(height, df = 5)2  25.1695     0.4323   58.23 6.55e-13 ***
ns(height, df = 5)3  33.2582     0.3541   93.93 8.91e-15 ***
ns(height, df = 5)4  50.7894     0.6062   83.78 2.49e-14 ***
ns(height, df = 5)5  45.0363     0.2784  161.75  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 0.2645 on 9 degrees of freedom
Multiple R-squared: 0.9998,	Adjusted R-squared: 0.9997 
F-statistic:  9609 on 5 and 9 DF,  p-value: < 2.2e-16 

> 
> ## example of safe prediction
> plot(women, xlab = "Height (in)", ylab = "Weight (lb)")
> ht <- seq(57, 73, length.out = 200)
> lines(ht, predict(fm1, data.frame(height=ht)))
> ## Don't show: 
> ## Consistency:
> x <- c(1:3,5:6)
> stopifnot(identical(ns(x), ns(x, df = 1)),
+           identical(ns(x, df=2), ns(x, df=2, knots=NULL)),# not true till 2.15.2
+           !is.null(kk <- attr(ns(x), "knots")),# not true till 1.5.1
+           length(kk) == 0)
> ## End Don't show
> 
> 
> 
> cleanEx()
> nameEx("periodicSpline")
> ### * periodicSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: periodicSpline
> ### Title: Create a Periodic Interpolation Spline
> ### Aliases: periodicSpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics); require(stats)
> xx <- seq( -pi, pi, length.out = 16 )[-1]
> yy <- sin( xx )
> frm <- data.frame( xx, yy )
> pispl <- periodicSpline( xx, yy, period = 2 * pi)
> pispl2 <- periodicSpline( yy ~ xx, frm, period = 2 * pi )
> stopifnot(all.equal(pispl, pispl2))# pispl and pispl2 are the same
> 
> plot( pispl )          # displays over one period
> points( yy ~ xx, col = "brown")
> plot( predict( pispl, seq(-3*pi, 3*pi, length.out = 101) ), type = "l" )
> 
> 
> 
> cleanEx()
> nameEx("polySpline")
> ### * polySpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: polySpline
> ### Title: Piecewise Polynomial Spline Representation
> ### Aliases: polySpline as.polySpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics)
> ispl <- polySpline(interpSpline( weight ~ height,  women, bSpline = TRUE))
> print( ispl )   # print the piecewise polynomial representation
polynomial representation of spline for weight ~ height
   constant   linear   quadratic       cubic
58      115 1.731918  0.00000000  0.26808191
59      117 2.536164  0.80424574 -0.34040957
60      120 3.123427 -0.21698298  0.09355638
61      123 2.970130  0.06368616 -0.03381595
62      126 2.996054 -0.03776168  0.04170740
63      129 3.045653  0.08736054 -0.13301367
64      132 2.821333 -0.31168048  0.49034728
65      135 3.669014  1.15936136 -0.82837545
66      139 3.502610 -1.32576498  0.82315452
67      142 3.320544  1.14369857 -0.46424262
68      146 4.215213 -0.24902928  0.03381595
69      150 3.818603 -0.14758144  0.32897883
70      154 4.510376  0.83935505 -0.34973127
71      159 5.139893 -0.20983876  0.06994625
72      164 4.930054  0.00000000  0.00000000
> plot( ispl )    # plots over the range of the knots
> points( women$height, women$weight )
> 
> 
> 
> cleanEx()
> nameEx("predict.bSpline")
> ### * predict.bSpline
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: predict.bSpline
> ### Title: Evaluate a Spline at New Values of x
> ### Aliases: predict.bSpline predict.nbSpline predict.pbSpline
> ###   predict.npolySpline predict.ppolySpline
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics); require(stats)
> ispl <- interpSpline( weight ~ height,  women )
> opar <- par(mfrow = c(2, 2), las = 1)
> plot(predict(ispl, nseg = 201),     # plots over the range of the knots
+      main = "Original data with interpolating spline", type = "l",
+      xlab = "height", ylab = "weight") 
> points(women$height, women$weight, col = 4)
> plot(predict(ispl, nseg = 201, deriv = 1),
+      main = "First derivative of interpolating spline", type = "l",
+      xlab = "height", ylab = "weight") 
> plot(predict(ispl, nseg = 201, deriv = 2),
+      main = "Second derivative of interpolating spline", type = "l",
+      xlab = "height", ylab = "weight") 
> plot(predict(ispl, nseg = 401, deriv = 3),
+      main = "Third derivative of interpolating spline", type = "l",
+      xlab = "height", ylab = "weight") 
> par(opar)
> 
> 
> 
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("predict.bs")
> ### * predict.bs
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: predict.bs
> ### Title: Evaluate a Spline Basis
> ### Aliases: predict.bs predict.ns
> ### Keywords: smooth
> 
> ### ** Examples
> 
> require(stats)
> basis <- ns(women$height, df = 5)
> newX <- seq(58, 72, length.out = 51)
> # evaluate the basis at the new data
> predict(basis, newX)
                 1            2            3          4            5
 [1,] 0.0000000000 0.0000000000  0.000000000 0.00000000  0.000000000
 [2,] 0.0001666667 0.0000000000 -0.025270112 0.07581034 -0.050540224
 [3,] 0.0013333333 0.0000000000 -0.050033132 0.15009940 -0.100066264
 [4,] 0.0045000000 0.0000000000 -0.073781966 0.22134590 -0.147563933
 [5,] 0.0106666667 0.0000000000 -0.096009523 0.28802857 -0.192019047
 [6,] 0.0208333333 0.0000000000 -0.116208710 0.34862613 -0.232417420
 [7,] 0.0360000000 0.0000000000 -0.133872434 0.40161730 -0.267744868
 [8,] 0.0571666667 0.0000000000 -0.148493603 0.44548081 -0.296987205
 [9,] 0.0853333333 0.0000000000 -0.159565123 0.47869537 -0.319130247
[10,] 0.1215000000 0.0000000000 -0.166579904 0.49973971 -0.333159807
[11,] 0.1666666667 0.0000000000 -0.169030851 0.50709255 -0.338061702
[12,] 0.2211666667 0.0001666667 -0.166622161 0.49986648 -0.333244323
[13,] 0.2826666667 0.0013333333 -0.159903185 0.47970955 -0.319806370
[14,] 0.3481666667 0.0045000000 -0.149634561 0.44890368 -0.299269122
[15,] 0.4146666667 0.0106666667 -0.136576928 0.40973078 -0.273153855
[16,] 0.4791666667 0.0208333333 -0.121490924 0.36447277 -0.242981848
[17,] 0.5386666667 0.0360000000 -0.105137189 0.31541157 -0.210274379
[18,] 0.5901666667 0.0571666667 -0.088276362 0.26482909 -0.176552724
[19,] 0.6306666667 0.0853333333 -0.071669081 0.21500724 -0.143338162
[20,] 0.6571666667 0.1215000000 -0.056075985 0.16822795 -0.112151970
[21,] 0.6666666667 0.1666666667 -0.042257713 0.12677314 -0.084515425
[22,] 0.6571666667 0.2211666667 -0.030651111 0.09245333 -0.061635555
[23,] 0.6306666667 0.2826666667 -0.020397854 0.06519356 -0.043462374
[24,] 0.5901666667 0.3481666667 -0.010315824 0.04444747 -0.029631648
[25,] 0.5386666667 0.4146666667  0.000777096 0.02966871 -0.019779141
[26,] 0.4791666667 0.4791666667  0.014063024 0.02031093 -0.013540619
[27,] 0.4146666667 0.5386666667  0.030724078 0.01582777 -0.010551844
[28,] 0.3481666667 0.5901666667  0.051942375 0.01567287 -0.010448583
[29,] 0.2826666667 0.6306666667  0.078900034 0.01929990 -0.012866600
[30,] 0.2211666667 0.6571666667  0.112779171 0.02616249 -0.017441658
[31,] 0.1666666667 0.6666666667  0.154761905 0.03571429 -0.023809524
[32,] 0.1215000000 0.6571666667  0.205345238 0.04746429 -0.031476190
[33,] 0.0853333333 0.6306666667  0.262285714 0.06114286 -0.039428571
[34,] 0.0571666667 0.5901666667  0.322654762 0.07653571 -0.046523810
[35,] 0.0360000000 0.5386666667  0.383523810 0.09342857 -0.051619048
[36,] 0.0208333333 0.4791666667  0.441964286 0.11160714 -0.053571429
[37,] 0.0106666667 0.4146666667  0.495047619 0.13085714 -0.051238095
[38,] 0.0045000000 0.3481666667  0.539845238 0.15096429 -0.043476190
[39,] 0.0013333333 0.2826666667  0.573428571 0.17171429 -0.029142857
[40,] 0.0001666667 0.2211666667  0.592869048 0.19289286 -0.007095238
[41,] 0.0000000000 0.1666666667  0.595238095 0.21428571  0.023809524
[42,] 0.0000000000 0.1215000000  0.578428571 0.23571429  0.064357143
[43,] 0.0000000000 0.0853333333  0.543619048 0.25714286  0.113904762
[44,] 0.0000000000 0.0571666667  0.492809524 0.27857143  0.171452381
[45,] 0.0000000000 0.0360000000  0.428000000 0.30000000  0.236000000
[46,] 0.0000000000 0.0208333333  0.351190476 0.32142857  0.306547619
[47,] 0.0000000000 0.0106666667  0.264380952 0.34285714  0.382095238
[48,] 0.0000000000 0.0045000000  0.169571429 0.36428571  0.461642857
[49,] 0.0000000000 0.0013333333  0.068761905 0.38571429  0.544190476
[50,] 0.0000000000 0.0001666667 -0.036047619 0.40714286  0.628738095
[51,] 0.0000000000 0.0000000000 -0.142857143 0.42857143  0.714285714
attr(,"degree")
[1] 3
attr(,"knots")
 20%  40%  60%  80% 
60.8 63.6 66.4 69.2 
attr(,"Boundary.knots")
[1] 58 72
attr(,"intercept")
[1] FALSE
attr(,"class")
[1] "ns"     "basis"  "matrix"
> 
> 
> 
> cleanEx()
> nameEx("splineDesign")
> ### * splineDesign
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: splineDesign
> ### Title: Design Matrix for B-splines
> ### Aliases: splineDesign spline.des
> ### Keywords: models
> 
> ### ** Examples
> 
> require(graphics)
> splineDesign(knots = 1:10, x = 4:7)
          [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
[1,] 0.1666667 0.6666667 0.1666667 0.0000000 0.0000000 0.0000000
[2,] 0.0000000 0.1666667 0.6666667 0.1666667 0.0000000 0.0000000
[3,] 0.0000000 0.0000000 0.1666667 0.6666667 0.1666667 0.0000000
[4,] 0.0000000 0.0000000 0.0000000 0.1666667 0.6666667 0.1666667
> ## "visualize" band structure
> Matrix::drop0(zapsmall(6*splineDesign(knots = 1:40, x = 4:37, sparse=TRUE)))
<sparse>[ <logic> ] : .M.sub.i.logical() maybe inefficient
34 x 36 sparse Matrix of class "dgCMatrix"
                                                                             
 [1,] 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 [2,] . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 [3,] . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 [4,] . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 [5,] . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 [6,] . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 [7,] . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . .
 [8,] . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . .
 [9,] . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . .
[10,] . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . .
[11,] . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . .
[12,] . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . .
[13,] . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . .
[14,] . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . .
[15,] . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . .
[16,] . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . .
[17,] . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . .
[18,] . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . .
[19,] . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . .
[20,] . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . .
[21,] . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . .
[22,] . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . .
[23,] . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . .
[24,] . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . .
[25,] . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . .
[26,] . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . .
[27,] . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . .
[28,] . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . .
[29,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . .
[30,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . .
[31,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . .
[32,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . .
[33,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 .
[34,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1
> 
> knots <- c(1,1.8,3:5,6.5,7,8.1,9.2,10)# 10 => 10-4 = 6 Basis splines
> x <- seq(min(knots)-1, max(knots)+1, length.out=501)
> bb <- splineDesign(knots, x=x, outer.ok = TRUE)
> 
> plot(range(x), c(0,1), type="n", xlab="x", ylab="",
+      main= "B-splines - sum to 1 inside inner knots")
> mtext(expression(B[j](x) *"  and "* sum(B[j](x), j==1, 6)), adj=0)
> abline(v=knots, lty=3, col="light gray")
> abline(v=knots[c(4,length(knots)-3)], lty=3, col="gray10")
> lines(x, rowSums(bb), col="gray", lwd=2)
> matlines(x, bb, ylim = c(0,1), lty=1)
> 
> 
> 
> cleanEx()
> nameEx("splineKnots")
> ### * splineKnots
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: splineKnots
> ### Title: Knot Vector from a Spline
> ### Aliases: splineKnots
> ### Keywords: models
> 
> ### ** Examples
> 
> ispl <- interpSpline( weight ~ height, women )
> splineKnots( ispl )
 [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
> 
> 
> 
> cleanEx()
> nameEx("splineOrder")
> ### * splineOrder
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: splineOrder
> ### Title: Determine the Order of a Spline
> ### Aliases: splineOrder
> ### Keywords: models
> 
> ### ** Examples
> 
> splineOrder( interpSpline( weight ~ height, women ) )
[1] 4
> 
> 
> 
> cleanEx()
> nameEx("xyVector")
> ### * xyVector
> 
> flush(stderr()); flush(stdout())
> 
> ### Name: xyVector
> ### Title: Construct an 'xyVector' Object
> ### Aliases: xyVector
> ### Keywords: models
> 
> ### ** Examples
> 
> require(stats); require(graphics)
> ispl <- interpSpline( weight ~ height, women )
> weights <- predict( ispl, seq( 55, 75, length.out = 51 ))
> class( weights )
[1] "xyVector"
> plot( weights, type = "l", xlab = "height", ylab = "weight" )
> points( women$height, women$weight )
> weights
$x
 [1] 55.0 55.4 55.8 56.2 56.6 57.0 57.4 57.8 58.2 58.6 59.0 59.4 59.8 60.2 60.6
[16] 61.0 61.4 61.8 62.2 62.6 63.0 63.4 63.8 64.2 64.6 65.0 65.4 65.8 66.2 66.6
[31] 67.0 67.4 67.8 68.2 68.6 69.0 69.4 69.8 70.2 70.6 71.0 71.4 71.8 72.2 72.6
[46] 73.0 73.4 73.8 74.2 74.6 75.0

$y
 [1] 109.8042 110.4970 111.1898 111.8825 112.5753 113.2681 113.9608 114.6536
 [9] 115.3485 116.0971 117.0000 118.1214 119.3694 120.6168 121.8162 123.0000
[17] 124.1961 125.3995 126.5980 127.7930 129.0000 130.2237 131.4243 132.5557
[25] 133.6865 135.0000 136.6001 138.2531 139.6541 140.8021 142.0000 143.4815
[33] 145.1507 146.8334 148.4468 150.0000 151.5249 153.1289 154.9329 156.9329
[41] 159.0000 161.0269 163.0134 164.9860 166.9580 168.9301 170.9021 172.8741
[49] 174.8461 176.8181 178.7902

attr(,"class")
[1] "xyVector"
> 
> 
> 
> ### * <FOOTER>
> ###
> cat("Time elapsed: ", proc.time() - get("ptime", pos = 'CheckExEnv'),"\n")
Time elapsed:  2.472 0.045 2.601 0 0 
> grDevices::dev.off()
null device 
          1 
> ###
> ### Local variables: ***
> ### mode: outline-minor ***
> ### outline-regexp: "\\(> \\)?### [*]+" ***
> ### End: ***
> quit('no')