Hi,
Check also saveObject() and loadObject() from R.utils:
library(R.utils)
outfilenames<- paste ("./file", 1:numFiles, '.Rbin', sep="")
for ( i in 1:10) {
dataFile = read.table (filenames[i], header=TRUE, sep='\t');
saveObject (dataFile, file = outfilenames[i])
}
And then:
file1 = loadObject (file = './file1.Rdata')
HTH,
Ivan
Le 6/19/2011 17:07, Mary Kindall a écrit :
Thanks Jeff and Duncan
Assign worked for me. I did not check the other methods suggested by you. I
am repreducing my code below:
##################
filenames = list.files(path = ".", pattern = '.txt$', all.files = FALSE,
full.names = TRUE, ignore.case = FALSE) #all input files
numFiles = length(filenames)
outfilenames<- paste("./file", 1:numFiles, '.Rdata', sep="") # output files
for ( i in 1:numFiles)
{
dataFile = read.table(filenames[i], header=TRUE, sep='\t');
save(dataFile, file = outfilenames[i]) #Saving into the output files
}
newnames<- paste("file", 1:numFiles, sep="") #output variables to load
into
for ( i in 1:numFiles)
{
load(file = outfilenames[i]);
assign(newnames[i], dataFile) #assign into corresponding output variables;
}
#####################
Regards
-
M
On Sun, Jun 19, 2011 at 10:38 AM, Duncan Murdoch
<murdoch.dun...@gmail.com>wrote:
On 11-06-19 10:26 AM, Mary Kindall wrote:
I have a list of txt files that I want to convert into .rdata R data
object.
filenames
1. "./file1.txt"
2. "./file2.txt"
3. "./file3.txt"
4. "./file4.txt"
5. "./file5.txt"
6. "./file6.txt"
7. "./file7.txt"
8. "./file8.txt"
9. "./file9.txt"
10. "./file10.txt"
I saved these files as
for ( i in 1:10)
{
dataFile = read.table(filenames[i], header=TRUE, sep='\t');
save (dataFile, file = outfilenames[i])
}
The inpt files are saves as:
outfilenames
1. "./file1.Rdata"
2. "./file2.Rdata"
3. "./file3.Rdata"
4. "./file4.Rdata"
5. "./file5.Rdata"
6. "./file6.Rdata"
7. "./file7.Rdata"
8. "./file8.Rdata"
9. "./file9.Rdata"
10. "./file10.Rdata"
Now I want to load these out files in such a way that the data is loaded
into a variable that is same as the file name without extension.
file1 = load (file = './file1.Rdata')
file2 = load (file = './file2.Rdata')
file3 = load (file = './file3.Rdata')
file4 = load (file = './file4.Rdata')
How can I do that.
When you load() a file, the variables in it are restored with the same
names that were saved. So you would need something like
newnames<- paste("file", 1:10, sep="") # file1, file2, etc.
for (i in 1:10) {
load(file=outfilenames[i]) # assuming that's still around...
assign(newnames[i], dataFile)
}
It would be a little simpler to use saveRDS() and readRDS() to save and
load your files. They don't save the object names.
A more R-like version of this would be to create a list of datasets, e.g.
files<- list()
for (i in 1:10) {
load(file=outfilesnames[i])
files[[i]]<- dataFile
}
Then you don't end up creating 10 objects, but you can still access them
separately.
Duncan Murdoch
--
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Dept. Mammalogy
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calan...@uni-hamburg.de
**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php
______________________________________________
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.