> On Jul 13, 2017, at 3:22 PM, Duncan Murdoch <[email protected]> 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
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel