Thanks for your explanation!

> With this in mind, either of the following might do what you want:
> 
> badFunction <- function(mydata, myformula) {
>    mydata$myweight <- abs(rnorm(nrow(mydata)))
>    hyp <-
>        rpart(myformula,
>              data=mydata,
>              weights=myweight,
>              method="class")
>    prev <- hyp
> }
> 
> 
> badFunction <- function(mydata, myformula) {
>    myweight <- abs(rnorm(nrow(mydata)))
>    environment(myformula) <- environment()
>    hyp <-
>        rpart(myformula,
>              data=mydata,
>              weights=myweight,
>              method="class")
>    prev <- hyp
> }

OK, this is what I have now:

adaboostBad <- function(formula, data) {
  ## local definition of the weight vector (won't work because pima.formula is 
not defined within this function)
  w <- abs(rnorm(nrow(data)))
  rpart(formula, data=data, weights=w)
}

adaboostGood <- function(formula, data) {
  ## create weight vector in the data object
  data$w <- abs(rnorm(nrow(data)))
  rpart(formula, data=data, weights=w)
}

adaboostBest <- function(formula, data) {
  ## associate the current environment (this function's one) with the object 
`formula'
  environment(formula) <- environment()
  w <- abs(rnorm(nrow(data)))
  rpart(formula, data=data, weights=w)
}

As far as I understand this non-standard evaluation stuff, adaboostGood() and 
adaboostBest()
are the only two possibilities to call rpart() with weight vectors. Now suppose 
that I don't
know what `data' contains and suppose further that it already contains a column 
called `w'.
adaboostGood() would overwrite that column with new data which is then used as 
weight vector
and as training data for rpart(). adaboostBest() would just use the wrong data 
as weight
vector as it finds data$w before the real weight vector. So, in both cases I 
have to check for
`names(data) == "w"` and stop if TRUE? Or is there a better way?

Regards

-- 
Philipp Benner

______________________________________________
[email protected] 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