In the call to the function 'fr1', the argument 'x' comes in as a vector and
you get a vector result.  Here is what it looks like:

> fr2(seq(0,1,.1))
 [1] 1.00 1.31 1.64 1.99 2.36 2.75 3.16 3.59 4.04 4.51 5.00

because fr2 is sending a vector of length 10 to fr1 which will return a
vector of length 10.  When plotting a function, it will generate (by
default) values 0 to 1, like above, and call for the plot of 10 'y' and 10
'x' values.

Now lets take a look at your second set of functions.

 Fr2 <- function(x){
 Fr1(c(x,3))
 }

 This will call Fr1 with a vector that is the concatenation of 'x' and 3.
In the plot, you will get a sequence of:

 c(0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1,3)

 This is probably what you are not expecting since

 x[1] = 0
 x[2] = .1

 and you get just a single value returned:

 > Fr2(seq(0,1,.1))
 [1] 1

Now what you probably want is a 'list' for the parameters:

Fr1 <- function(x){
 x1 <- x[[1]]
 x2 <- x[[2]]
 x1^2+x1*x2+1
 }

 Fr2 <- function(x){
 Fr1(list(x,3))
 }

 plot(Fr2)

 > Fr2(seq(0,1,0.1))
 [1] 1.00 1.31 1.64 1.99 2.36 2.75 3.16 3.59 4.04 4.51 5.00


On Sat, May 17, 2008 at 11:54 PM, chaij <azraelchai@hotmail.com> wrote:

>
> I tried to define a function using another function I defined before, and
> the
> previous function has a vector as an argument, when I tried to get the
> graph
> of the new function, there was something going wrong. Here is a simple
> example to explain how it happend:
>
>  fr1 <- function(x,y){
>  x^2+x*y+1
>  }
>
>  fr2 <- function(x){
>  fr1(x,3)
>  }
>
>  plot(fr2)
>
> In this case, it worked just fine. But when I changed it to the following
> form:
> Fr1 <- function(x){
>  x1 <- x[1]
>  x2 <- x[2]
>  x1^2+x1*x2+1
>  }
>
>  Fr2 <- function(x){
>  Fr1(c(x,3))
>  }
>
>  plot(Fr2)
> it gives:
> Error in xy.coords(x, y, xlabel, ylabel, log) :
>  'x' and 'y' lengths differ
>
> Could anyone help me with this problem? Thanks.
> --
> View this message in context:
> http://www.nabble.com/plot-a-function-with-a-vector-as-argument-tp17299015p17299015.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

	[[alternative HTML version deleted]]

