[R] reading in multiple data sets in 2 loops

Reka Howard rekahoward at gmail.com
Sun Feb 7 08:06:09 CET 2016


Thank you very much for all of the help!!! For what I need, Jim's and
Jeff's solutions were the most useful, but I really appreciate all of the
help I got.

On Sat, Feb 6, 2016 at 2:01 PM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us>
wrote:

> Normally one wants not only to read the data, but to save it in an object
> as well. Here are some modifications toward achieving that (untested):
>
>
> header<-"C:/Research3/simulation1/second_gen/pheno_1000ind_4000m_add_h70_prog"
> fnums <- expand.grid( a = 1:2, b = 2:3 )
> result <- vector( "list", nrow( fnums ) )
> for ( idx in seq.int( nrow( fnums ) ) ) {
>   result[[ idx ]] <- read.csv( paste( paste( header
>                                            , fnums$a[ idx ]
>                                            , fnums$b[ idx ]
>                                            , sep = "_"
>                                            )
>                                     , ".csv"
>                                     , sep = ""
>                                     )
>                              )
>   # optionally remember which file each data record came from
>   # assumes none of your input columns are labelled "a" or "b"
>   result[[ idx ]]$a <- fnums$a[ idx ]
>   result[[ idx ]]$b <- fnums$b[ idx ]
> }
>
> # you could also put all of the data into one data frame
> result2 <- do.call( rbind, result )
>
> # you could also do all of this in one dplyr pipe
> library(dplyr)
> result3 <- (   expand.grid( a = 1:2, b = 2:3 )
>            %>% rowwise # work through each row of the a/b combinations
>            %>% do( data.frame( a = .$a
>                              , b = .$b
>                              , read.csv( paste( paste( header
>                                                      , .$a
>                                                      , .$b
>                                                      , sep = "_"
>                                                      )
>                                               , ".csv"
>                                               , sep = ""
>                                               )
>                                        )
>                              )
>                  )
>            %>% as.data.frame
>            )
>
>
>
> On Sat, 6 Feb 2016, Jim Lemon wrote:
>
> Hi Reka,
>> Try this:
>>
>> header<-"C:/Research3/simulation1/second_gen/pheno_
>> 1000ind_4000m_add_h70_prog"
>> for(index1 in 1:2) {
>> for(index2 in 2:3)
>>  read.csv(paste(paste(header,index1,index2,sep="_"),".csv",sep=""))
>> }
>>
>> Jim
>>
>> On Sat, Feb 6, 2016 at 4:53 PM, Reka Howard <howardr at iastate.edu> wrote:
>>
>> Hello,
>>> I have over 1000 csv data sets I need to read into R, so I want to read
>>> them in using a loop. The data sets are named as
>>> pheno_1000ind_4000m_add_h70_prog_1_2.csv,
>>> pheno_1000ind_4000m_add_h70_prog_1_3.csv, ... so I need 2 loops (for the
>>> last 2 numbers in the names). What I would like to do is the following:
>>>
>>> setwd("C:/Research3/simulation1/second_gen")
>>> d1<-read.csv("pheno_1000ind_4000m_add_h70_prog_1_2.csv")
>>> d2<-read.csv("pheno_1000ind_4000m_add_h70_prog_1_3.csv")
>>> d3<-read.csv("pheno_1000ind_4000m_add_h70_prog_2_3.csv")
>>> .
>>> .
>>> .
>>>
>>> I am wondering how I can accomplish this with a loop. Any suggestion is
>>> appreciated!
>>> I tried the following but it does not work:
>>>
>>> data <- lapply(
>>>
>>>
>>>  paste(("C:/Research3/simulation1/second_gen/pheno_1000ind_4000m_add_h70_prog_",[1:2],"_",[2:3],".csv",sep=''),
>>> read.csv, header=TRUE, sep=',' )
>>> names(data) <- paste("d", LETTERS[1:3], sep='')
>>>
>>> Thanks!
>>> Reka
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> 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.
>>>
>>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>>
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live
> Go...
>                                       Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> ---------------------------------------------------------------------------
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list