stephen sefick wrote:
I will get R-dev tomorrow, and give it a try.  Where do I check out the svn?

https://svn.r-project.org/R/trunk

The fixed files are in .../src/library/stats/R and are approx.R, spline.R and splinefun.R. The only one that affects your report is approx.R.

Duncan Murdoch


thanks,

Stephen

On Wed, Sep 15, 2010 at 10:00 PM, Duncan Murdoch
<murdoch.dun...@gmail.com> wrote:
I think this is fixed now.  There were actually two bugs:

I fixed an old one a few days ago, but my fix didn't handle the case of
unsorted x properly.  (I haven't checked whether the old code handled that
properly; I'd guess not, but it might have.)  Now I've fixed my new bug.

*Please* test R-devel to see if I got it right this time.  (I think I did,
but I thought I did last time, too.)  If you don't build your own copies,
look for a build based on revision r52916 or newer.  Windows builds should
appear late tomorrow, I don't know about other platforms.

Duncan Murdoch

On 15/09/2010 4:32 PM, stephen sefick wrote:
x <-
c(-0.48,-0.48,-0.42,-0.26,0.58,0.48,0.47,0.54,0.5,0.52,0.52,0.56,0.58,0.61,0.68)
y <- c(0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6,2.8)

s <- approxfun(x[4:5], y[4:5], ties=mean)

s(0)

#This is the value that I want.  The first zero crossing in the order
of y.  #In other words in between 0.6 and 0.8.

#The data is a channel cross-section, and should really be visualized

plot(x~y, ylim=c(1,-1)) #this is half of a cross-section

#The bankfull depth is where x is equal to 0

On Wed, Sep 15, 2010 at 3:12 PM, stephen sefick <ssef...@gmail.com> wrote:
Thanks and I'll strip the code down even more in future posts.

Stephen

On Wed, Sep 15, 2010 at 3:05 PM, Duncan Murdoch
<murdoch.dun...@gmail.com> wrote:
 On 15/09/2010 3:48 PM, stephen sefick wrote:
Below is the code that I am using in a much larger function.  I would
expect a bankfull measure at zero to be between 0.6 and 0.8 approxfun
is returning 0.8136986.  I am sure that I am missing something.

measure_bkf<- (structure(list(measurment_num = c(0, 0.2, 0.4, 0.6,
0.8, 1, 1.2,
1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6, 2.8, 3, 3.2, 3.4), bankfull_depths_m
= c(-0.48,
-0.48, -0.42, -0.26, 0.58, 0.48, 0.47, 0.54, 0.5, 0.52, 0.52,
0.56, 0.58, 0.61, 0.68, 0.62, 0.67, 0.66)), .Names =
c("measurment_num",
"bankfull_depths_m"), row.names = c("6124", "612", "613", "614",
"615", "616", "617", "618", "619", "620", "621", "622", "623",
"624", "625", "626", "627", "628"), class = "data.frame"))


measure_bkf_not_zero<- subset(measure_bkf,
measure_bkf$bankfull_depths_m!=0)

bkf_min<- which.max(measure_bkf_not_zero[,"bankfull_depths_m"]<0)

bkf_max<- which.max(measure_bkf_not_zero[,"bankfull_depths_m"])

#bkf_min<- ifelse(length(bkf_min)>1, bkf_min[1], bkf_min)
#bkf_max<- ifelse(length(bkf_max)>1, bkf_max[1], bkf_max)

#s<- with(measure_bkf_not_zero, approx(measurment_num,
bankfull_depths_m,
xout=seq(measure_bkf_not_zero[bkf_min,"measurment_num"],
measure_bkf_not_zero[bkf_max,"measurment_num"], length=2000)))
#int_bkf<- with(s, x[which.min(y[y>0])])

s<- with(measure_bkf_not_zero[bkf_min:bkf_max,],
approxfun(bankfull_depths_m, measurment_num), ties=mean)

int_bkf<- s(0)

It is easier to see the problem if you don't leave all the complications
in
the beginning.  Just define some variables and
show the interpolation on a plot:

x <-

c(-0.48,-0.48,-0.42,-0.26,0.58,0.48,0.47,0.54,0.5,0.52,0.52,0.56,0.58,0.61,0.68)
y <- c(0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6,2.8)
plot(x, y)
s <- approxfun(x, y, ties=mean)
curve(s, add=TRUE)

On my system, this looks okay in 2.11.1, but not in R-patched or R-devel
(soon to be 2.12.0).  It is fixed if the x values are ordered, but it's
not
supposed to need that.  I'll take a look.

Duncan Murdoch

--
Stephen Sefick
____________________________________
| Auburn University                                   |
| Department of Biological Sciences           |
| 331 Funchess Hall                                  |
| Auburn, Alabama                                   |
| 36849                                                    |
|___________________________________|
| sas0...@auburn.edu                             |
| http://www.auburn.edu/~sas0025             |
|___________________________________|

Let's not spend our time and resources thinking about things that are
so little or so large that all they really do for us is puff us up and
make us feel like gods.  We are mammals, and have not exhausted the
annoying little problems of being mammals.

                               -K. Mullis

"A big computer, a complex algorithm and a long time does not equal
science."

                             -Robert Gentleman







______________________________________________
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.

Reply via email to