[R] importing data

David Hugh-Jones davidhughjones at gmail.com
Sat Jan 26 11:55:29 CET 2013


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.
>



More information about the R-help mailing list