Thanks David & Peter,

The locator() works but not practical as I have to repeat the process many times.

Does the code works on linear regression only? When i tried to find the intersection at a non-linear curve, i get the following error
Error in optimize(f = function(x) abs(xyf(ds) - n), c(0, 13)) :
  invalid function value in 'optimize'

I'd like to know what the error means and how I can correct it.

I have my sample data and code as follows;


*   s1         cm
1    0 0.57223196
2   10 0.33110049
3   20 0.11163181
4   30 0.10242237
5   40 0.09254315
6   50 0.02739370
7   60 0.02567137
8   70 0.02492397
9   80 0.03206637
10  90 0.02487381
11 100 0.01747584
12 110 0.15977533
13 120 0.13317708

rm(list=ls())
x<- read.table("test.data.txt",header=TRUE)

ds <- x[,2] # distance
cr <- x[,3] # correlation values
plot(ds,cr)
n <- 1/2.71
abline(h=n)

fc <- function(x,a,b){a*exp(-b*x)}    # where a & b are constants
fm <- nls(cr ~ fc(ds,a,b),start=c(a=1,b=0))
co <- coef(fm)
curve(fc(x,a=co[1],b=co[2]),add=TRUE,col="red",lwd=1.5)

int <- function(x) coef(fm)[1] + x*coef(fm)[2]
in1 <- optimize(f=function(x) c(0,120), abs(int(ds)-n))
abline(v=in1$minimize)

thanks,
Muhammad




On 04/23/2010 07:32 PM, Peter Ehlers wrote:
On 2010-04-23 11:46, David Winsemius wrote:
On Apr 23, 2010, at 1:06 PM, Muhammad Rahiz wrote:

Does anyone know of a method that I can get the intersection where the
red and blue curves meet i.e. the value on the x-axis?

x<- 1:10
y<- 10:1
plot(x,y)
abline(lm(y~x),col="blue")
abline(h=2.5,col="red")
Two ways :

  >  xy<- lm(y~x)
  >  xyf<- function(x) coef(xy)[1] +x*coef(xy)[2]

# absolute difference
  >  optimise(f=function(x) abs(xyf(x)-2.5), c(1,10) )
$minimum
[1] 8.49998

$objective
(Intercept)
1.932015e-05

#N minimize squared difference
  >  optimise(f=function(x) (xyf(x)-2.5)^2, c(1,10) )
$minimum
[1] 8.5

$objective
(Intercept)
3.155444e-30

Another (crude) way is to use locator(). I usually maximize
the plot window for this.



______________________________________________
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