Rev 87961 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
R version 4.5.1 Patched (2025-10-18 r88941) -- "Great Square Root"Copyright (C) 2025 The R Foundation for Statistical ComputingPlatform: x86_64-pc-linux-gnuR 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')>> 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")[1] 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(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.7142857143attr(,"degree")[1] 3attr(,"knots")[1] 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(60.8, 63.6, 66.4, 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))> ## IGNORE_RDIFF_BEGIN> 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> ## IGNORE_RDIFF_END> 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")[1] 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, derivs = 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.129 0.023 0.168 0 0> grDevices::dev.off()null device1> ###> ### Local variables: ***> ### mode: outline-minor ***> ### outline-regexp: "\\(> \\)?### [*]+" ***> ### End: ***> quit('no')