On Fri, Apr 8, 2011 at 11:45 AM, Franklin Tamborello II
<[email protected]> wrote:
> I know my subject line seems odd, but I want to replace an expression—such as
> a variable—with its value. For example, I want to paste() some strings
> together, assign the result to a variable s, then use the value of s as a
> variable to hold another value. Something like this:
>
> import_subjects <- function (start, iterations) {
> for (i in 1:iterations) { # iterate from start to end
> s <- paste("s", i, sep="") # make the data.frame's name
> fn <- paste(i, ".txt", sep="") # make the filename
> s <- read.delim(fn, header = FALSE) # now put it all together
> # …except that I don't want to reassign s, I want to evaluate it and make its
> value a variable with its own value.
> }
> }
>
> If this were Lisp I'd use backquotes (or "backticks", as some say) and
> commas—examples of read macros—to do this, but I can't find anything
> analogous for R. >How might I accomplish this in R?
As a first note, most people who ask this sort of question would be
better off putting the sets of data into a single list rather than
named variables.
However, it is possible to do what you want. One approach is to use
assign(). Another is to use bquote(), which is related to the Lisp
backquote macro: eval(bquote(.(s) <- read.delim(.(fn),header=FALSE)),
where .() is analogous to comma.
-thomas
--
Thomas Lumley
Professor of Biostatistics
University of Auckland
______________________________________________
[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.