[R] Eval() or parse() do not work inside function

Jorge A. Ahumada j.ahumada at conservation.org
Tue Jul 27 20:34:51 CEST 2010


I am writing a function where the arguments are names of objects or variable
names in a data frame. To convert the strings to the objects I am using
eval(parse(text=name)):

f.graph.two.vbs<-function(dataname,v1){
    
     val<-paste(dataname,v1,sep="$")
     val<-eval(parse(text=val))
     val
    }

However running this returns an error:

>f.graph.two.vbs("data","RECORD")
Error in data$RECORD : $ operator is invalid for atomic vectors

Repeating the individual commands in the workspace does work though.. Do I
need to pass the object data in the arguments for this to work?

Thanks,

Jorge
-- 
Jorge A. Ahumada
Technical Director
Tropical Ecology Assessment and Monitoring Network (TEAM)
Science and Knowledge Division
Conservation International
2011 Crystal Dr. Suite 500
Arlington, VA 22202
Phone: 703-341-2543
Mobile: 202-716-3374
http://www.teamnetwork.org/



More information about the R-help mailing list