> On Jul 13, 2017, at 3:22 PM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > > On 13/07/2017 4:08 PM, Marc Schwartz wrote: >> Hi All, >> >> As per the discussion today on R-Help: >> >> https://stat.ethz.ch/pipermail/r-help/2017-July/448132.html >> >> I am attaching a proposed patch for poly.Rd to provide clarifying wording >> relative to naming the 'degree' argument explicitly, in the case where the >> 'x' argument is a matrix, rather than a vector. >> >> This is based upon the svn trunk version of poly.Rd. > > I don't think this is the right fix. The use of the unnamed 2nd arg as > degree happens whether the first arg is a matrix or not. > > I didn't read the whole thread in detail, but it appears there's a bug > somewhere, in the report or in the poly() code or in the plsr() code. That > bug should be reported on the bug list if it turns out to be in base R, and > to the package maintainer if it is in plsr(). > > Duncan Murdoch
Duncan, Thanks for your reply. You only really need to read that last post in the thread linked to above. I won't deny the possibility of a bug in poly(), relative to the handling of 'x' as a matrix. The behavior occurs in the poly() function in a pure stand alone fashion, without the need for plsr(): x1 <- runif(20) x2 <- runif(20) mx <- cbind(x1, x2) > poly(mx, 2) Error in poly(dots[[i]], degree, raw = raw, simple = raw) : 'degree' must be less than number of unique points The above error occurs because of the way in which 'mx' is transformed internally in poly(), as per the R-Help post I linked to above. Compare that to: > poly(mx, degree = 2) 1.0 2.0 0.1 1.1 0.2 [1,] -0.11175349 -0.112802655 0.34729146 -0.038811031 0.29371194 [2,] 0.27620511 -0.102592711 0.27672559 0.076433023 0.10192546 [3,] 0.31709686 -0.000822981 -0.06017089 -0.019080000 -0.20283645 [4,] -0.05873472 -0.213373684 0.26314361 -0.015455666 0.07009778 [5,] -0.17389885 0.046175314 0.08393899 -0.014596893 -0.19610518 [6,] -0.07143282 -0.192226574 0.12931566 -0.009237383 -0.15572309 [7,] -0.20924410 0.156380030 -0.38783860 0.081152937 0.46977236 [8,] 0.09192574 -0.322960534 -0.13012298 -0.011961651 -0.13946871 [9,] -0.08030862 -0.176345544 -0.11855987 0.009521379 -0.15294790 [10,] 0.26551532 -0.126030940 -0.09225246 -0.024494442 -0.17918115 [11,] -0.16961102 0.033781845 0.23980484 -0.040673544 0.01924080 [12,] -0.23503411 0.245845222 0.37898576 -0.089074579 0.39427472 [13,] 0.44343189 0.434902694 0.19305658 0.085607445 -0.06804699 [14,] -0.16429372 0.018706099 -0.04315970 0.007090868 -0.21166328 [15,] 0.04616179 -0.317237087 -0.09818924 -0.004532591 -0.17379927 [16,] -0.20148531 0.130959507 -0.32805340 0.066097939 0.27578123 [17,] -0.25585213 0.323634018 -0.34406268 0.088029169 0.32460950 [18,] -0.21168308 0.164513794 -0.10037452 0.021247587 -0.17173927 [19,] 0.41817752 0.333143463 -0.04018127 -0.016802902 -0.21294380 [20,] 0.08481772 -0.323649275 -0.16929688 -0.014359375 -0.08495871 attr(,"degree") [1] 1 2 1 2 2 attr(,"coefs") attr(,"coefs")[[1]] attr(,"coefs")[[1]]$alpha [1] 0.3596862 0.5799695 attr(,"coefs")[[1]]$norm2 [1] 1.000000 20.000000 1.898620 0.109334 attr(,"coefs")[[2]] attr(,"coefs")[[2]]$alpha [1] 0.5123548 0.5290189 attr(,"coefs")[[2]]$norm2 [1] 1.0000000 20.0000000 1.5765605 0.1255148 attr(,"class") [1] "poly" "matrix" Thoughts? Regards, Marc ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel