[R] Using a sting in variable names
Duncan Murdoch
murdoch.duncan at gmail.com
Tue May 17 00:29:53 CEST 2011
On 16/05/2011 4:18 PM, olafgy wrote:
> Hi there,
>
> I am trying to import 100 files with the names of "vpn 1 .dat" to "vpn 100
> .dat"
> into a respective table calld vpn1 to vpn100.
>
> I therfore have created a variable X<-1:100
>
> I not want to use X as a subtitute for the number in my filename, so that I
> have to write only one function and it does the operation with all files.
>
> I have tried every combination i could imagine to include the string X into
> the file name:
>
> vpn'X' , vpn"X" , vpn[X] , and so on, but R never did what I wanted it
> too.
>
> vpn"X"<-read.table("vpn "X" .dat")
>
> So is there a way to do this in R??? or should I use an intirely new
> aproach?
Yes there is a way, and yes you should use a different approach.
R is not a macro language. You can't just put X somewhere and expect it
to be expanded into its contents. You need to call functions that make
use of it and produce the results you want.
One way is like this:
filenames <- sprintf("vpn %d .dat", X)
varnames <- sprintf("vpn%d", X)
for (i in 1:100) {
var <- read.table(filenames[i])
assign(varnames[i], var)
}
There are ways to compress all of this into a single line, but they are
(in my opinion) a lot less clear.
Duncan Murdoch
More information about the R-help
mailing list