At 11:57 AM 5/31/2003 -0500, Paul E. Johnson wrote:
I keep finding myself in a situation where I want to calculate a variable name and then use it on the left hand side of an assignment. For example

iteration <- 1
varName <- paste("run",iteration,sep="")
myList$parse(text=varName) <- aColumn

I want to take some existing variable "aColumn" and use the name "varName" name for it and put it into a list "myList". That use fails with this error:

Error: couldn't find function "(<-"

I've tried many variations on the theme.

If I could do this with a data frame, I would be just as happy. Right now I'm using a list rather than a data frame because not all columns are of the same length. But I can work around that.

Dear Paul,


I don't think that assign() will work in this context, but I may be wrong.

One way to proceed is with eval() and parse(), assembling the command to be executed as a text string; for example,

eval(parse(text=paste("myList$", varName, " <- aColumn", sep=""))), though you do have to be careful about the environment in which the expression is evaluated -- see the envir argument to eval.

I hope that this helps,
 John


----------------------------------------------------- John Fox Department of Sociology McMaster University Hamilton, Ontario, Canada L8S 4M4 email: [EMAIL PROTECTED] phone: 905-525-9140x23604 web: www.socsci.mcmaster.ca/jfox

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to