An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130127/32752561/attachment.pl>
importing data
5 messages · Ivan Calandra, Ray Cheung
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130128/8f78cc2f/attachment.pl>
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 ivan.calandra at 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.calandra at u-bourgogne.fr <mailto:ivan.calandra at 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>
ivan.calandra at u-bourgogne.fr <mailto:ivan.calandra at 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.calandra at u-bourgogne.fr
<mailto: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 <tel:%2B33%280%293.80.39.63.06>
ivan.calandra at u-bourgogne.fr
<mailto: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 <mailto: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 <mailto: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.
______________________________________________
R-help at r-project.org <mailto: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/20130128/8c5528c2/attachment.pl>
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.calandra at 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.calandra at u-bourgogne.fr <mailto:ivan.calandra at 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.calandra at u-bourgogne.fr <mailto:ivan.calandra at 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.calandra at u-bourgogne.fr
<mailto:ivan.calandra at u-bourgogne.fr>
<mailto:ivan.calandra at u-bourgogne.fr
<mailto:ivan.calandra at 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.calandra at u-bourgogne.fr
<mailto:ivan.calandra at u-bourgogne.fr>
<mailto:ivan.calandra at u-bourgogne.fr
<mailto:ivan.calandra at 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.calandra at u-bourgogne.fr
<mailto:ivan.calandra at u-bourgogne.fr>
<mailto:ivan.calandra at u-bourgogne.fr
<mailto: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 <tel:%2B33%280%293.80.39.63.06>
<tel:%2B33%280%293.80.39.63.06>
ivan.calandra at u-bourgogne.fr
<mailto:ivan.calandra at u-bourgogne.fr>
<mailto:ivan.calandra at u-bourgogne.fr
<mailto: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 <mailto:ray1728 at gmail.com>
<mailto:ray1728 at gmail.com <mailto: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 <mailto:R-help at r-project.org>
<mailto:R-help at r-project.org <mailto: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.
______________________________________________
R-help at r-project.org <mailto:R-help at r-project.org>
<mailto:R-help at r-project.org
<mailto: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.