[R] My First Function: cryptic error message

Weiwei Shi helprhelp at gmail.com
Tue Apr 17 00:56:42 CEST 2007


Hi, Joel:

I cannot reproduce the error w/o the data called probands but I assume
the line in bagger function
bootsamples <- rmultinom (length(trees), n,
                           rep(1,n)/n)

might not succeed so that it complains bootsamples not found.

try to add one line like print(dim(bootsamples)) after the above line
in your codes to see if there is a problem there.

HTH,

Weiwei

On 4/16/07, Joel J. Adamson <jadamson at partners.org> wrote:
> Dear List,
> My first R function is a rip-off bagging algorithm from pg. 138 of
> Everitt and Hothorn's "Handbook of Statistical Analyses using R"
> (HSAUR).  I'm using recursive partitioning to develop a set of useful
> variables in diagnosing ADHD.
>
> I'm running this in ESS in XEmacs 21.4.19, R 2.4.1 on Slackware Linux
> 11.0 with a 2.6 kernel.
>
> This is almost an entire script, although I've removed or disguised
> parts that would reveal my plans for world domination.  The function
> is right here at the top:
>
> ####################
> # bagging function:
> bagger <- function (length = 25, formula, dataframe) {
>   trees <- vector(mode = "list", length = length)
>   n <- nrow(dataframe)
>   bootsamples <- rmultinom (length(trees), n,
>                             rep(1,n)/n)
>   mod <- rpart(formula, data = dataframe,
>                control = rpart.control(xval = 0))
>   for (i in 1:length(trees)) {
>     trees[[i]] <- update(mod,
>                          weights = bootsamples[, i])
>   }
> }
>
> #bring in data
> [snip]
> #Recursive partitioning:
> library("rpart")
> # get a 2/3 random sample of ids
> ids <- sample(probands$id,
>                    size = 2*(length(probands$id))/3,
>                    replace = FALSE)
> # now I want a logical vector telling me which sample to put the
> # subjects in:
> #training_true <- probands$id %in% ids
> training <- subset(probands, probands$id %in% ids)
> testing <- subset(probands, ! probands$id %in% ids)
>
> # formula for the rpart model
> adhdcbin <- factor(probands$adhdcbin, ordered = TRUE,
>                    labels = cbind("Control","ADHD" ))
> cbs38s <- as.formula(paste("adhdcbin ~",
>                      paste(names(probands[grep("cbs38_..*",names(probands))]),
>                            collapse = "+")))
>
> # fitting the rpart model
> rpart_training <- rpart(cbs38s,
>                         data = training,
>                         method = "class")
> X11 (); plot(rpart_training);text(rpart_training)
> rpart_training.bagged <- bagger(length = 100, formula = cbs38s, training)
> X11 (); plot(rpart_training.bagged);text(rpart_training.bagged)
> ####################
>
> The second-to-last line gives me the following error:
>
> Error in eval(expr, envir, enclos) : object "bootsamples" not found
>
> I've used backtrace(), debug(bagger) and options(error=recover ()) and
> nothing seems to make sense.  What should I be looking for?
> "bootsamples" is there at every time except ...
>
> I've tried this with other formulas, I've tried typing in
> the function vs. reading it in by source(); I've re-formatted the top
> line to read with the brace on the same line as the declaration or on
> the next line.  EVerything produces the same message.  Am I binding
> the variables correctly?  Am I declaring the arguments correctly?
>
> The most irritating part is that this worked last week ;)  I swear.
>
> Thanks,
> Joel
> --
> Joel J. Adamson
> Biostatistician
> Pediatric Psychopharmacology Research Unit
> Massachusetts General Hospital
> Boston, MA  02114
> (617) 643-1432
> (303) 880-3109
>
>
>
>
>
> The information transmitted in this electronic communication...{{dropped}}
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>


-- 
Weiwei Shi, Ph.D
Research Scientist
GeneGO, Inc.

"Did you always know?"
"No, I did not. But I believed..."
---Matrix III



More information about the R-help mailing list