[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