[R] Calling variables dynamically

kewley at eden.rutgers.edu kewley at eden.rutgers.edu
Sat Apr 15 01:21:40 CEST 2006


I've looked in the online documentation for this, but have been unable to
find an answer. I can name variables dynamically, but I cannot call them
dynamically. Either a direct answer or a reference to an online resource
that has the answer would be great.

I'm trying to write a script that imports and compares results from
various IR (information retrieval systems). Each imported file will
contain results for multiple (50+) queries, each query can have 2000+
results.

My immediate task is to import the files and assign the scores for each
query to its own variable (e.g. File1-Query1, File1-Query2, etc)

I've written code that reads in the data files and enters them as variables:

res.paths <-file.path(choose.files("c:/res/*.*"))
num.files<- NROW(res.paths)
for (j in 1: num.files) {
	assign(paste("res",j, sep=""), read.table(res.paths[j]))
This gives me variables named res1, res2, etc, one for each file. So far
so good.

But the next line of code is designed to find out how many unique values
are in the first column (i.e. number of queries) of the file I just
imported:

assign(paste("res.count",j, sep="_"), NROW(unique(res[j]$V1)))
	}

What I expected is a variable named e.g. res.count_1. However, I get an
error:
Error in unique(res[j]$V1) : object "res" not found

How can I dynamically call res1, res2, etc? I've also tried using quotes
and paste, but with no success.

Any help is appreciated.

Andrew Noyes
SCILS
Rutgers University




More information about the R-help mailing list