On Thu, Apr 7, 2011 at 7:45 PM, 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?
>

Here are a few possibilities:

# 1 - assign
assign(s, read.delim(fn, header = FALSE)

# 2 - .GlobalEnv
.GlobalEnv[[s]] <- read.delim(fn, header = FALSE)

# 3 - gsubfn's fn$ supports backticks
# Here we need gsubfn::fn to disambiguate the two fn's
library(gsubfn)
eval(gsubfn::fn$parse(text = " `s` <- read.delim(fn, header = FALSE) "))

-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com

______________________________________________
[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.

Reply via email to