>>> d2y <- diff(dy) >>> which(dy==0) ## critical values >>> sign(s2y)[which(dy==0)] ## test for max/min/saddle >>> which(d2y==0) ## inflection points >> >> I would think that testing for d2y==0 would be akin to the error in >> numeric analysis warned about in FAQ 7.31. Seems unlikely that in real >> data that there would always be three points in a row with equal >> differences at a "true" inflection and even then, many of the ones you >> did find satisfying that criterion would not be in fact inflection >> points. Wouldn't it be better to fit a spline and then do your testing >> on the spline approximation? >> >> Counter-example: >> x=1:10 >>> y=c(1,2,3,5,7,10,13,16,20,24) >>> dy <- diff(y) >>> d2y <- diff(dy) >>> which(d2y==0) >> [1] 1 3 5 6 8 >> >> And actually the original data was a pretty good counter-example as well. > > > The original post wasn't entirely clear, but I thought the data were > indeed integers and that the discrete-state version of > min/max/inflection point was indeed what was wanted. Yes, if the > underlying variable is continuous you might want to use splinefun(), > with its deriv= argument, and uniroot(), to find maxima and minima. > Might be a little tricky in general, although with an interpolation > spline between a finite set of points you can at least deal with it > exhaustively.
my real data is not limited to integer. Do you know a ready to use code example for this? Would it be a good idea to create a function and make it public to the community? And if yes as single .R file, or as a library? kind regards, -- Jonas Stein <n...@jonasstein.de> ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.