Rev 78418 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
R Under development (unstable) (2020-05-18 r78485) -- "Unsuffered Consequences"Copyright (C) 2020 The R Foundation for Statistical ComputingPlatform: 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 localeR 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')>> base::assign(".oldSearch", base::search(), pos = 'CheckExEnv')> base::assign(".old_wd", base::getwd(), 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.000000000attr(,"degree")[1] 3attr(,"knots")33.33333% 66.66667%62.66667 67.33333attr(,"Boundary.knots")[1] 58 72attr(,"intercept")[1] FALSEattr(,"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.35086Coefficients: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 ‘ ’ 1Residual standard error: 0.2276 on 9 degrees of freedomMultiple R-squared: 0.9999, Adjusted R-squared: 0.9998F-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(`33.33333%` = 62.6666666666667, :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.7142857143attr(,"degree")[1] 3attr(,"knots")20% 40% 60% 80%60.8 63.6 66.4 69.2attr(,"Boundary.knots")[1] 58 72attr(,"intercept")[1] FALSEattr(,"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.30426Coefficients: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 ‘ ’ 1Residual standard error: 0.2645 on 9 degrees of freedomMultiple R-squared: 0.9998, Adjusted R-squared: 0.9997F-statistic: 9609 on 5 and 9 DF, p-value: < 2.2e-16>> ## To see what knots were selected> attr(terms(fm1), "predvars")list(weight, ns(height, knots = c(`20%` = 60.8, `40%` = 63.6,`60%` = 66.4, `80%` = 69.2), Boundary.knots = c(58, 72), intercept = FALSE))>> ## example of safe prediction> plot(women, xlab = "Height (in)", ylab = "Weight (lb)")> ht <- seq(57, 73, length.out = 200) ; nD <- data.frame(height = ht)> lines(ht, p1 <- predict(fm1, nD))> stopifnot(all.equal(p1, predict(update(fm1, . ~+ splines::ns(height, df=5)), nD)))> # not true in R < 3.5.0> ## 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 representationpolynomial representation of spline for weight ~ heightconstant linear quadratic cubic58 115 1.731918 0.00000000 0.2680819159 117 2.536164 0.80424574 -0.3404095760 120 3.123427 -0.21698298 0.0935563861 123 2.970130 0.06368616 -0.0338159562 126 2.996054 -0.03776168 0.0417074063 129 3.045653 0.08736054 -0.1330136764 132 2.821333 -0.31168048 0.4903472865 135 3.669014 1.15936136 -0.8283754566 139 3.502610 -1.32576498 0.8231545267 142 3.320544 1.14369857 -0.4642426268 146 4.215213 -0.24902928 0.0338159569 150 3.818603 -0.14758144 0.3289788370 154 4.510376 0.83935505 -0.3497312771 159 5.139893 -0.20983876 0.0699462572 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.714285714attr(,"degree")[1] 3attr(,"knots")20% 40% 60% 80%60.8 63.6 66.4 69.2attr(,"Boundary.knots")[1] 58 72attr(,"intercept")[1] FALSEattr(,"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> splineDesign(knots = 1:10, x = 4:7, deriv = 1)[,1] [,2] [,3] [,4] [,5] [,6][1,] -0.5 0.0 0.5 0.0 0.0 0.0[2,] 0.0 -0.5 0.0 0.5 0.0 0.0[3,] 0.0 0.0 -0.5 0.0 0.5 0.0[4,] 0.0 0.0 0.0 -0.5 0.0 0.5> ## visualize band structure>> 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.7902attr(,"class")[1] "xyVector">>>> ### * <FOOTER>> ###> cleanEx()> options(digits = 7L)> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")Time elapsed: 0.21 0.014 0.225 0 0> grDevices::dev.off()null device1> ###> ### Local variables: ***> ### mode: outline-minor ***> ### outline-regexp: "\\(> \\)?### [*]+" ***> ### End: ***> quit('no')