[R] smooth.spline() unique 'x' values error

Nicholas Reich nick at schoolph.umass.edu
Wed Feb 15 16:00:03 CET 2012


Hello. 

I'm getting an unexpected result when running smooth.spline().  Here is a simple example that replicates the error I'm getting:

> aa <- c(1, 2, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 13, 14)
> bb <- 1:length(aa)
> plot(aa, bb)
> smooth.spline(aa, bb)
Error in smooth.spline(aa, bb) : need at least four unique 'x' values



As you can see from the example, my 'x' clearly has more than 4 values.  The problem is the form of my 'x'.  When I dig around in the smooth.spline() code, it looks like it is relying on a call to IQR(x) which, with data such as the object aa above, returns 0 because more than half of the values are stacked on one value in the middle of the data.  The call to smooth.spline() works if I add some random noise to the Xs, but I'd like to be able to avoid that type of workaround.  Any other suggestions?

Thanks,
Nick

-- 
Nicholas G. Reich, Ph.D.
Research Assistant Professor
Division of Biostatistics and Epidemiology
School of Public Health and Health Sciences
University of Massachusetts, Amherst

413.545.4534
nick at schoolph.umass.edu
http://people.umass.edu/nick/
on twitter: @reichlab



More information about the R-help mailing list