There are several problems: - as mentioned by Duncan, the code calls plot but specifies plot.formula argument names -- it must specify the x argument of plot. (You also have an x defined in your data frame but that is a different x -- replacing your x with X everywhere still gives a message about x being missing since its referring to the x argument of plot.) - the left and right sides of the formula are supposed to be y and x, not y on both sides - y is undefined - the call to plot is somewhat non-standard so plot(x = 1 / (1 + exp(5.0993 - 0.1084 * x)) ~ x, y = data.frame(x = seq(0, 100, length.out=1000))) does not work even though plot(1 / (1 + exp(5.0993 - 0.1084 * x)) ~ x, data.frame(x = seq(0, 100, length.out=1000))) does work by passing the two arguments as x and y to plot: > debug(plot) > plot(1 / (1 + exp(5.0993 - 0.1084 * x)) ~ x, data.frame(x = seq(0, 100, length.out=1000))) debugging in: plot(1/(1 + exp(5.0993 - 0.1084 * x)) ~ x, data.frame(x = seq(0, 100, length.out = 1000))) debug: { if (is.function(x) && is.null(attr(x, "class"))) { if (missing(y)) y <- NULL hasylab <- function(...) !all(is.na(pmatch(names(list(...)), "ylab"))) if (hasylab(...)) plot.function(x, y, ...) else plot.function(x, y, ylab = paste(deparse(substitute(x)), "(x)"), ...) } else UseMethod("plot") } Browse[2]> x 1/(1 + exp(5.0993 - 0.1084 * x)) ~ x Browse[2]> head(y) x 1 0.0000000 2 0.1001001 3 0.2002002 4 0.3003003 5 0.4004004 6 0.5005005
Instead, try these (which all give the same result): op <-par(mfrow = c(3,2)) plot(1 / (1 + exp(5.0993 - 0.1084 * x)) ~ x, data = data.frame(x = seq(0, 100, length.out=1000))) graphics:::plot.formula(formula = 1 / (1 + exp(5.0993 - 0.1084 * x)) ~ x, data = data.frame(x = seq(0, 100, length.out=1000))) x <- seq(0, 100, length.out = 1000) plot(1 / (1 + exp(5.0993 - 0.1084 * x)) ~ x) x <- seq(0, 100, length.out = 1000) y <- 1 / (1 + exp(5.0993 - 0.1084 * x)) plot(y ~ x) x <- seq(0, 100, length.out = 1000) y <- 1 / (1 + exp(5.0993 - 0.1084 * x)) plot(x, y) par(op) On Sat, May 15, 2010 at 1:22 AM, Giovanni Azua <brave...@gmail.com> wrote: > Hi Jorge and Dennis, > > Thank you for the hint! > > However, I'm still very intrigued as to why it does not work using plot ... > what is special about this specific formula that plot doesn't like it? > > Best regards, > Giovanni > > On May 15, 2010, at 7:12 AM, Jorge Ivan Velez wrote: >> Hi Giovanni, >> >> curve(1/(1+exp(5.0993-0.1084*x)), 0, 100) >> >> HTH, >> Jorge >> >> >> On Sat, May 15, 2010 at 12:43 AM, Giovanni Azua <> wrote: >> Hello, >> >> I'd like to plot the logistic function for a specific model like this: >> >> > plot(formula=y~1/(1+exp(5.0993-0.1084*x)),data=data.frame(x=seq(0,100,length.out=1000))) >> Error in is.function(x) : 'x' is missing >> >> However, I get the 'x' is missing error above and don't know how to fix it >> ... >> >> Can anyone advice? >> Thanks in advance, >> Best regards, >> Giovanni >> >> ______________________________________________ >> 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. >> > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > ______________________________________________ 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.