Henrique Dallazuanna wrote: > Try: sapply(paste("Data$x", 1:3, sep=""), > function(x)eval(parse(text=x))) > > On 07/01/2008, Gregory Gentlemen <[EMAIL PROTECTED]> wrote: >> Dear R users, >> >> I'd like to evaluate a vector of characters. For example, say I >> have a data frame called Data including the field names x1, x2, x3, >> and I'd like to a list out of paste("Data$x", 1:3, sep=""). How can >> I get list to evaluate paste("Data$x", 1:3, sep="") as an R object >> rather than a string? >> >> Thanks in advance for you assistance. Gregory
> fortune(106) If the answer is parse() you should usually rethink the question. -- Thomas Lumley R-help (February 2005) :-) Try this: > Data <- data.frame(x1 = 1:3, x2 = letters[1:3], x3 = 4:6, x4 = 8:10) > Data x1 x2 x3 x4 1 1 a 4 8 2 2 b 5 9 3 3 c 6 10 Since the only part that is varying is the column names: Data[, paste("x", 1:3, sep="")] x1 x2 x3 1 1 a 4 2 2 b 5 3 3 c 6 or > subset(Data, select = paste("x", 1:3, sep="")) x1 x2 x3 1 1 a 4 2 2 b 5 3 3 c 6 See ?subset. Alternatively, see ?get for other ways of returning R objects using character vectors. For example, a bit more convoluted, but you could also do: MyDF <- "Data" Cols <- paste("x", 1:3, sep="") > get(MyDF)[, Cols] x1 x2 x3 1 1 a 4 2 2 b 5 3 3 c 6 This gives you more flexibility in having both the name of the data frame and the desired subset of columns within the data frame as character vectors. HTH, Marc Schwartz ______________________________________________ R-help@r-project.org 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.