[R] lineplot.CI in "sciplot": option "ci.fun" can't be changed?

Manuel Morales Manuel.A.Morales at williams.edu
Fri Apr 2 20:22:33 CEST 2010


For now, just change fun(x) to median(x) (or whatever) in your ci.fun()
below. 

E.g.
lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, ci.fun=
function(x) c(mean(x)-2*se(x), mean(x)+2*se(x)))

Otherwise, maybe the list members could help with a solution. An example
that illustrates the problem:

ex.fn <- function(x, 
     fun = mean,
     fun2 = function(x) fun(x)+sd(x)) {
     
     list(fun=fun(x), fun2=fun2(x))
}

data <- rnorm(10)

ex.fn(data)			         #works
ex.fn(data, fun=median)			 #works
ex.fn(data, fun2=function(x) fun(x)+3)   #error with fun(x) not found


On Fri, 2010-04-02 at 17:36 +0000, Tao Shi wrote:
> hi List and Manuel,
> 
> I have encounter the following problem with the function "lineplot.CI".  I'm running R 2.10.1, sciplot 1.0-7 on Win XP.  It seems like it's a scoping issue, but I couldn't figure it out.
> 
> Thanks!
> 
> ...Tao
> 
> 
> 
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth)    ## fine
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, fun=median)  ## fine
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, fun=mean)  ## fine
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, ci.fun= function(x) c(fun(x)-2*se(x), fun(x)+2*se(x)))  ## failed!
> Error in FUN(X[[1L]], ...) : could not find function "fun"
> 
> > debug(lineplot.CI)
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, ci.fun= function(x) c(fun(x)-2*se(x), fun(x)+2*se(x)))
> ....
> ....
> ....
> ....
> Browse[2]> 
> debug: mn.data <- tapply(response, groups, fun)
> Browse[2]> 
> debug: CI.data <- tapply(response, groups, ci.fun)
> Browse[2]> fun
> function (x) 
> mean(x, na.rm = TRUE)
> <environment: 0x07178640>
> Browse[2]> ci.fun
> function(x) c(fun(x)-2*se(x), fun(x)+2*se(x))
> Browse[2]> debug(ci.fun)
> Browse[2]> fun
> function (x) 
> mean(x, na.rm = TRUE)
> <environment: 0x07178640>
> Browse[2]> 
> debugging in: FUN(X[[1L]], ...)
> debug: c(fun(x) - 2 * se(x), fun(x) + 2 * se(x))
> Browse[3]> 
> Error in FUN(X[[1L]], ...) : could not find function "fun"
> > undebug(lineplot.CI)
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, ci.fun= function(x) c(fun(x)-se(x), fun(x)+se(x))) 
> Error in FUN(X[[1L]], ...) : could not find function "fun"
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, fun = function(x) mean(x, na.rm=TRUE),ci.fun= function(x) c(fun(x)-se(x), fun(x)+se(x))) 
> Error in FUN(X[[1L]], ...) : could not find function "fun"
> > lineplot.CI(x.factor = dose, response = len, data = ToothGrowth, fun = function(x) median(x, na.rm=TRUE),ci.fun= function(x) c(fun(x)-se(x), fun(x)+se(x))) 
> Error in FUN(X[[1L]], ...) : could not find function "fun"
> 
> 
> 
> 
> 
>  		 	   		  
> _________________________________________________________________
> Hotmail has tools for the New Busy. Search, chat and e-mail from your inbox.
> http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_1

-- 
http://mutualism.williams.edu



More information about the R-help mailing list