This code is indeed much shorter. About the speed, I guess it should be
faster, but you should test it with system.time()
I'm glad that it helped.
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.calan...@u-bourgogne.fr
http://biogeosciences.u-bourgogne.fr/calandra
Le 28/01/13 16:38, Ray Cheung a écrit :
Dear Ivan,
It works perfectly fine now. I love this code more since I need not
delete the NULL list myself (and it should be faster, right?). Thank
you very much for your help!
cheers,
Ray
On Mon, Jan 28, 2013 at 5:32 PM, Ivan Calandra
<ivan.calan...@u-bourgogne.fr <mailto:ivan.calan...@u-bourgogne.fr>>
wrote:
What about this then:
list_of_datasets <- lapply(file_names, read.table,
other_args_to_read.table)
Something that might then be useful is:
names(list_of_datasets) <- file_names
Does it do it now?
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 <tel:%2B33%280%293.80.39.63.06>
ivan.calan...@u-bourgogne.fr <mailto:ivan.calan...@u-bourgogne.fr>
http://biogeosciences.u-bourgogne.fr/calandra
Le 28/01/13 07:34, Ray Cheung a écrit :
Thanks a million for all help provided!! I can do what I
intend to using the "for loop". However, I'm still eager to
try the list.files approach. Here is the error message that I
got using Ivan's code:
> list_of_dataset <- do.call(read.table, file_names)
Error in do.call(read.table, file_names) : second argument
must be a list
Please advise.
Ray
On Sun, Jan 27, 2013 at 10:57 PM, Ivan Calandra
<ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@u-bourgogne.fr>
<mailto:ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@u-bourgogne.fr>>> wrote:
Hi Ray!
I'm insisting with list.files...!
What about like this (untested)?
file_names <- list.files(path="C:/.../data", pattern=".dat$",
full.names=TRUE)
list_of_dataset <- do.call(read.table, file_names)
Let me know if this helps!
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 <tel:%2B33%280%293.80.39.63.06>
<tel:%2B33%280%293.80.39.63.06>
ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@u-bourgogne.fr>
<mailto:ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@u-bourgogne.fr>>
http://biogeosciences.u-bourgogne.fr/calandra
Le 26/01/13 10:03, Ray Cheung a écrit :
Thanks for your commands, Ivan and Michael! However, I
am still
not producing the right codes. Would you please help me on
this? I've written the following codes. Please
comment. Thank you
very much.
Task: Reading data1.dat to data1000.dat (with missing
files) into
R. Missing files can be omitted in the list.
###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
}
###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
}
Thanks for all comments.
Best Regards,
Ray
On Fri, Jan 25, 2013 at 5:48 PM, Ivan Calandra
<ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@u-bourgogne.fr>
<mailto:ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@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 <tel:%2B33%280%293.80.39.63.06>
<tel:%2B33%280%293.80.39.63.06>
ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@u-bourgogne.fr>
<mailto:ivan.calan...@u-bourgogne.fr
<mailto:ivan.calan...@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
<ray1...@gmail.com <mailto:ray1...@gmail.com>
<mailto:ray1...@gmail.com <mailto:ray1...@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@r-project.org <mailto:R-help@r-project.org>
<mailto:R-help@r-project.org <mailto: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.
______________________________________________
R-help@r-project.org <mailto:R-help@r-project.org>
<mailto:R-help@r-project.org
<mailto: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.
______________________________________________
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.