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

______________________________________________
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