[R] smooth.spline
Rolf Turner
rolf at math.unb.ca
Fri Mar 17 16:09:35 CET 2006
I have noticed a slightly puzzling behaviour exhibited by
smooth.spline(). If I do
sss <- smooth.spline(x,y)
for a certain pair of data vectors x and y, and then do
length(sss$x)
I get the result ``18''. However if I do
length(unique(x))
I get ``27''. Trying to force smooth.spline() to use more knots I
tried
sss <- smooth.spline(x,y,all.knots=TRUE)
but again got output of length 18 again. I then tried
sss <- smooth.spline(x,y,nknots=27)
and got an error message. Finally I was inspired to re-scale the
x-values. Doing
x <- x - min(x)
sss <- smooth.spline(x,y)
gave me output of length 27 as expected. Apparently smooth.spline()
is using a criterion for distinctness of x values which is based on a
tolerance relative to the size of the x's. (I.e. a different
criterion from unique().) While this is assuredly a Good Thing, it
might be nice to have some sort of warning in the help file to keep
young players from getting confused.
cheers,
Rolf Turner
rolf at math.unb.ca
More information about the R-help
mailing list