I searched the archives and did not find a solution, so I pose this question to those well-versed in the use of plotmath and expressions.
I have a list of strings in an external CSV file which I wish to use sometimes as plot axis labels and sometimes as plot titles. These strings combine plaintext and a few mathematical expressions (Greek letters, subscripts). Moreover, I sometimes need to concatenate other plaintext with these strings. Thus far I have written my string list to look like this: "X translation ("*mu*"m)" "Rotation ("*degree*")" "Mean ("*mu*"m)" "Vb1-Vb2 "*(Omega) H[2]O "Used" Max P # Defects I read in the strings, and use one at a time in the variable "parmlabel". I have another variable called "testlabel" which I also need to concatenate, and can be things like "distance" or "E-test". Sometimes I also concatenate another variable "oplabel" when the variable "op" is not zero-length. I have kludged a solution using this function: expr.label<-function(title=""){ ## single quote the character # so that it is not interpreted as a comment parmlabel<-gsub("#","'#'",cfg$parmlabel[icfg]) ## make sure that a string like "Vb1-Vb2" is not interpreted as subtraction text1<-gsub("-","*'-'*",testlabel) ## if need to prepend title test, do that, and make multiple spaces single if(nchar(title)) text1<-paste(gsub(" "," ",title)," ",testlabel,sep="") ## substitute to avoid interpretation of "for" text1<-gsub("for","f*or",text1,fixed=TRUE) ## substitute ~ for spaces to avoid errors in parsing text1<-gsub(" ","~",text1,fixed=TRUE) ## see if we have a parsable expression text2<-try(parse(text=parmlabel),silent=TRUE) ## if not parsable then concatenate another way if(class(text2)=="try-error" | length(text2)==0){ text2<-gsub(" ","~",parmlabel) exprtitle<-paste(text1,text2,sep="~") } else{ exprtitle<-paste('"',text1,'~"*',text2,sep='') } exprtitle<-paste(text1,text2,sep="~") ## if the variable op is not zero-length, then use oplabel if(nchar(op)>1) exprtitle=paste(exprtitle,'~',gsub(' ','~',oplabel),sep="") return(exprtitle) } As an example: > parmlabel<-'"Vb1-Vb2 "*(Omega)' > testlabel<-'E-test' > op<-'dev lab' > oplabel<-'Development Lab' > expr.label("SPC Chart for") I then use exprtitle in: plot(1:10,title= if(plotnum==1) parse(text=exprtitle) else NULL) However: this code seems convoluted and ungainly I don't always get the results I want Any suggestions? Leif Kirschenbaum Senior Yield Engineer Reflectivity, Inc. (408) 737-8100 x307 [EMAIL PROTECTED] ______________________________________________ R-help@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