An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130123/c1c41e05/attachment.pl>
importing data
7 messages · R. Michael Weylandt, Ray Cheung, Ivan Calandra +1 more
On Wed, Jan 23, 2013 at 9:16 AM, Ray Cheung <ray1728 at gmail.com> wrote:
Dear All, Sorry for asking a newbie question. I want to ask how to import 1000 datasets whose file names are labelled from data1.dat to data1000.dat into R so that they are named M[1, , ] to M[1000, , ] accordingly. Thank you very much. ,
Hi Ray,
I'm pretty sure you don't mean "named" M[1,,] etc. but rather that
there's only one object M and that's how the slices come into
existence:
What you'll want to do is something like this:
little_helpful_function(n){
file_name <- paste("data", n, ".dat", sep = "")
read.dta(file_name, ##OTHER PARAMETERS)
}
list_of_datasets <- lapply(1:1000, little_helpful_function)
output <- do.call(c, list_of_datasets)
dim(output) <- c(dim(list_of_datasets[[1]]), 1000)
Or something like that. Note that I'm not quite sure what a dta file
is, so I'll leave it to you to find an appropriate read.dta function.
Feel free to write back (cc'ing the list) if you don't understand all
of the above.
Cheers,
Michael
Best Regards,
Ray
[[alternative HTML version deleted]]
______________________________________________ R-help at 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.
1 day later
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130125/ddceb304/attachment.pl>
On Fri, Jan 25, 2013 at 6:11 AM, Ray Cheung <ray1728 at gmail.com> wrote:
Dear Michael, Thanks for your codes. However, lapply does not work in my case since I've some files missing in the data (say, the file data101.dat). Do you have any suggestions on this?? Thank you very much.
You could simply add a test using file.exists() but I'm not sure what you want to do with the M matrix then -- omit the slice (so the others are all shifted down one) or fill it entirely with NA's. Michael
Hi, Not sure this is what you need, but what about list.files()? It can get you all the files from a given folder, and you could then work this list with regular expressions for example. HTH, Ivan -- Ivan CALANDRA Universit? de Bourgogne UMR CNRS/uB 6282 Biog?osciences 6 Boulevard Gabriel 21000 Dijon, FRANCE +33(0)3.80.39.63.06 ivan.calandra at u-bourgogne.fr http://biogeosciences.u-bourgogne.fr/calandra Le 25/01/13 10:00, R. Michael Weylandt a ?crit :
On Fri, Jan 25, 2013 at 6:11 AM, Ray Cheung <ray1728 at gmail.com> wrote:
Dear Michael, Thanks for your codes. However, lapply does not work in my case since I've some files missing in the data (say, the file data101.dat). Do you have any suggestions on this?? Thank you very much.
You could simply add a test using file.exists() but I'm not sure what you want to do with the M matrix then -- omit the slice (so the others are all shifted down one) or fill it entirely with NA's. Michael
______________________________________________ R-help at 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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130126/a2c81bf2/attachment.pl>
Hi Ray, Comments below:
On 26 January 2013 09:03, Ray Cheung <ray1728 at gmail.com> wrote:
[snip]
###FUNCTION TO READ FILES
little_helpful <- function(n) {
file_name <- paste0("C:/.../data", n, ".dat")
read.table(file_name)
}
###RETURN AN OBJECT WHICH CHECKS FOR THE EXISTENCE OF FILES
check <- function(n) {
a <- ifelse(file.exists(paste0("C:/.../data", n, ".dat")), 1, 0)
a
}
Too complex. Why not just use file.exists directly?
###Combining the functions
IMPORT <- function(n) {
L <- check(1:n)
for (i in 1:n) {
if (L[i] == 1)
list_of_datasets <- lapply(i, little_helpful) else list_of_datasets
<- 0
}
list_of_datasets
}
Too complex here too. I suggest something like:
M <- list()
for (i in 1:n) {
file_name <- paste0("C:/.../data", n, ".dat")
if (file.exists(file_name)) M[i] <- read.table(file_name) } R gurus don't like for() loops, but they are easy for humans to understand. If this doesn't work, post the error message.
Thanks for all comments. Best Regards, Ray On Fri, Jan 25, 2013 at 5:48 PM, Ivan Calandra <ivan.calandra at u-bourgogne.fr
wrote:
Hi, Not sure this is what you need, but what about list.files()? It can get you all the files from a given folder, and you could then work this list with regular expressions for example. HTH, Ivan -- Ivan CALANDRA Universit? de Bourgogne UMR CNRS/uB 6282 Biog?osciences 6 Boulevard Gabriel 21000 Dijon, FRANCE +33(0)3.80.39.63.06 ivan.calandra at u-bourgogne.fr http://biogeosciences.u-**bourgogne.fr/calandra<http://biogeosciences.u-bourgogne.fr/calandra> Le 25/01/13 10:00, R. Michael Weylandt a ?crit :
On Fri, Jan 25, 2013 at 6:11 AM, Ray Cheung <ray1728 at gmail.com> wrote:
Dear Michael, Thanks for your codes. However, lapply does not work in my case since I've some files missing in the data (say, the file data101.dat). Do you have any suggestions on this?? Thank you very much. You could simply add a test using file.exists() but I'm not sure what
you want to do with the M matrix then -- omit the slice (so the others are all shifted down one) or fill it entirely with NA's. Michael
______________________________**________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide http://www.R-project.org/** posting-guide.html <http://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.
______________________________**________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide http://www.R-project.org/** posting-guide.html <http://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.
[[alternative HTML version deleted]]
______________________________________________ R-help at 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.