[R] scoping problem?

Jonathan Qiang Li jonqli at labs.agilent.com
Tue Jul 17 16:01:59 CEST 2001


I wrote a dummy function that passes a dataset to tree() as the

test.func <- function(training.data){
	tr <- tree(type~., data = training.data)

Then I run the function under R

> test.func(MyData)

Error in model.frame.default(formula = type ~ ., data = training.data) : 
	Object "training.data" not found

MyData resides in the working environment, while training.data does not.
R manual
claims that scoping of free variables are "lexical" (Introduction to R,
chapter 10.7).
 I take that it means that in evaluating the expression 
tree(type~., data=training.data) ,
R will look in the scope of the function test.func, therefore
discovering "training.data" 
as a "formal parameter". But it seemed that I misunderstood something

I also made a global variable 

> training.data <- MyData

and run 

> test.func(MyData) 

The function works fine without complaints.

Can someone please help with this matter?

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list