I recall the above problem. It works. Just error on my part in the file
output.
Here is the script that works.
-----
seq <- paste(seq(1914, 1916, by=1), "*.y", sep=".")
for (i in 1:3){
list <- list.files("~/ukcp09/txt/x.djf", seq[[i]])
file <- lapply(list, read.table)
mean <- (Reduce("+", file))
myfile1 <- paste(strsplit(seq[[i]], "\\.")[[1]][1], "sum.txt", sep=".")
write.table(mean, file=myfile1, row.names=FALSE, col.names=FALSE)
}
-----
Muhammad Rahiz wrote:
Hi all,
I've got a list of files from 1914 to 2000. For each file, I can call the
read.table function as follows.
file <- read.table("1914.txt")
But I want to make a script so that at the end of the loop, the script selects
the file 1915.txt, 1916.txt and so on.
I've used seq() to create the increment
seq <- paste(seq(1914, 2006, by=1), "*.txt.h", sep=".")
But it didn't work.
Below is the script;
seq <- paste(seq(1914, 2006, by=1), "*.txt", sep=".")
for (i in 1:93){
list <- list.files("~/ukcp09/txt/x.djf", seq)
file <- lapply(list, read.table)
mean <- (Reduce("+", file))/3
}
When I call
> objects()
> list
[1] "2006.01.txt.h" "2006.02.txt.h" "2006.12.txt.h"
The listed files are the last files in the sequence.
Am I doing the loop correctly?
______________________________________________
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.