Thank you all! :) Can I "walk through" the my.data structure without knowing the name of particular dataframe in it? Such as: for(i in 1:length(my.data)) myprocess(my.data[i]) ? If it is possible, then this is going to save the work of using paste().
Thanks! On Tue, Dec 9, 2008 at 6:45 PM, Antonio, Fabio Di Narzo <[EMAIL PROTECTED]> wrote: >> names(my.data) > gives you the vector of 'names' of the list, which should be a good, > compact overview of the list contents. >> str(my.data) > gives also streamlined information about each component of the list, > i.e. also what variables are there (names and types), how many > observations, etc. > To dissect each single data.frame, just estract it and use it as a > regular data.frame, i.e. >> 019data <- my.data[["019v1msa1.data"]] >> summary(019data) >> 019data$var1 >> plot(var1 ~ var2, data = 019data) >> lm(var1 ~ ., data = 019data) > etc. etc. > > HTH, > antonio. > > 2008/12/9 tsunhin wong <[EMAIL PROTECTED]>: >> I did really want to find make the suggestion work... it is going to >> save my time... >> I worked on trying to put all dataframes into a list() by: >> ###start of file >> rm(list=ls()) >> setwd("/Users/John/Programs/R") >> load("Expt108Master2008.Rdata") >> >> nms <- ls(pattern=".data") >> my.data <- list() >> for(i in nms) my.data[[i]] <- get(i) > > I don't get this bit. This really should be: >> for(i in nms) my.data[[i]] <- read.table(i) > as Greg explained. > >> >> save(list=ls(pattern="my."), file="Expt108One.Rdata") > if you have done the above correctly, all your data is in the 'my.data' list: > save(my.data, file="allData.Rdata") > >> ###end of file >> >> The original Rdata file (with global dataframes) is 427.4Mb, and the >> new Rdata file with 1 list() storing all dataframes is 427.2Mb >> I can now access the individual dataframes by: >> my.data$019v1msa1.data >> >> But... >> At the moment, whenever I type >>>my.data >> then the whole huge list of dataframes just flush out of standard >> output... and doing a >>>dim(my.data) >> will give me only NULL... >> what command(s) allows me to look at what variables / dataframes are >> stored in a list() structure? And how many of them is there? >> >> Thanks a lot! I'm still seasoning my style of working in R! >> >> Regards, >> >> John >> >> On Mon, Dec 8, 2008 at 4:10 PM, Greg Snow <[EMAIL PROTECTED]> wrote: >>> I really don't understand your concern. Something like: >>> >>>> nms <- c('file1','file2','file3') >>>> my.data <- list() >>>> for (i in nms) my.data[[ i ]] <- read.table(i) >>> >>> Will read in the files listed in the nms vector and put them into the list >>> my.data (each data frame is a single element of the list). This list will >>> not take up about the same amount of memory as if you read each file into a >>> dataframe in the global environment. And there is no transforming of data >>> frames (into 1 row or otherwise). >>> >>> -- >>> Gregory (Greg) L. Snow Ph.D. >>> Statistical Data Center >>> Intermountain Healthcare >>> [EMAIL PROTECTED] >>> 801.408.8111 >>> >>> >>>> -----Original Message----- >>>> From: tsunhin wong [mailto:[EMAIL PROTECTED] >>>> Sent: Monday, December 08, 2008 1:34 PM >>>> To: Greg Snow >>>> Cc: Jim Holtman; r-help@r-project.org; [EMAIL PROTECTED] >>>> Subject: Re: [R] Transforming a string to a variable's name? help me >>>> newbie... >>>> >>>> I want to combine all dataframes into one large list too... >>>> But each dataframe is a 35 columns x varying number of rows structure >>>> (from 2000 to >9000 rows) >>>> I have ~1500 dataframes of these to process, and that add up to > >>>> 1.5Gb of data... >>>> >>>> Combining dataframes into a single one require me to transform each >>>> single dataframe into one line, but I really don't have a good >>>> solution for the varying number of rows scenario... And also, I don't >>>> want to stall my laptop every time I run the data set: maybe I can do >>>> that when my prof give me a ~ 4Gb ram desktop to run the script ;) >>>> >>>> Thanks! :) >>>> >>>> - John >>>> >>>> On Mon, Dec 8, 2008 at 1:36 PM, Greg Snow <[EMAIL PROTECTED]> wrote: >>>> > In the long run it will probably make your life much easier to read >>>> all the dataframes into one large list (and have the names of the >>>> elements be what your currently name the dataframes), then you can just >>>> use regular list indexing (using [[]] rather than $ in most cases) >>>> instead of having to worry about get and assign and the >>>> risks/subtleties involved in using those. >>>> > >>>> > Hope this helps, >>>> > >>>> > -- >>>> > Gregory (Greg) L. Snow Ph.D. >>>> > Statistical Data Center >>>> > Intermountain Healthcare >>>> > [EMAIL PROTECTED] >>>> > 801.408.8111 >>>> > >>>> > >>>> >> -----Original Message----- >>>> >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >>>> >> project.org] On Behalf Of tsunhin wong >>>> >> Sent: Monday, December 08, 2008 8:45 AM >>>> >> To: Jim Holtman >>>> >> Cc: r-help@r-project.org >>>> >> Subject: Re: [R] Transforming a string to a variable's name? help me >>>> >> newbie... >>>> >> >>>> >> Thanks Jim and All! >>>> >> >>>> >> It works: >>>> >> tmptrial <- trialcompute(trialextract( >>>> >> get(paste("t",tmptrialinfo[1,2],tmptrialinfo[1,16],".gz",sep="")) , >>>> >> tmptrialinfo[1,32],secs,sdm),secs,binsize) >>>> >> >>>> >> Can I use "assign" instead? How should it be coded then? >>>> >> >>>> >> Thanks! >>>> >> >>>> >> - John >>>> >> >>>> >> On Mon, Dec 8, 2008 at 10:40 AM, Jim Holtman <[EMAIL PROTECTED]> >>>> >> wrote: >>>> >> > ?get >>>> >> > >>>> >> > >>>> >> > Sent from my iPhone >>>> >> > >>>> >> > On Dec 8, 2008, at 7:11, "tsunhin wong" <[EMAIL PROTECTED]> wrote: >>>> >> > >>>> >> >> Dear all, >>>> >> >> >>>> >> >> I'm a newbie in R. >>>> >> >> I have a 45x2x2x8 design. >>>> >> >> A dataframe stores the metadata of trials. And each trial has its >>>> >> own >>>> >> >> data file: I used "read.table" to import every trial into R as a >>>> >> >> dataframe (variable). >>>> >> >> >>>> >> >> Now I dynamically ask R to retrieve trials that fit certain >>>> >> selection >>>> >> >> criteria, so I use "subset", e.g. >>>> >> >> tmptrialinfo <- subset(trialinfo, (Subject==24 & >>>> >> Filename=="v2msa8")) >>>> >> >> >>>> >> >> The name of the dataframe / variable of an individual trial can >>>> be >>>> >> >> obtained using: >>>> >> >> paste("t",tmptrialinfo[1,2],tmptrialinfo[1,16],".gz",sep="") >>>> >> >> Then I get a string: >>>> >> >> "t24v2msa8.gz" >>>> >> >> which is of the exact same name of the dataframe / variable of >>>> that >>>> >> >> trial, which is: >>>> >> >> t24v2msa8.gz >>>> >> >> >>>> >> >> Can somebody tell me how can I change that string (obtained from >>>> >> >> "paste()" above) to be a usable / manipulable variable name, so >>>> that >>>> >> I >>>> >> >> can do something, such as: >>>> >> >> (1) >>>> >> >> tmptrial <- trialcompute(trialextract( >>>> >> >> paste("t",tmptrialinfo[1,2],tmptrialinfo[1,16],".gz",sep="") >>>> >> >> ,tmptrialinfo[1,32],secs,sdm),secs,binsize) >>>> >> >> instead of hardcoding: >>>> >> >> (2) >>>> >> >> tmptrial <- >>>> >> >> >>>> >> >>>> trialcompute(trialextract(t24v2msa8.gz,tmptrialinfo[1,32],secs,sdm),sec >>>> >> s,binsize) >>>> >> >> >>>> >> >> Currently, 1) doesn't work... >>>> >> >> >>>> >> >> Thanks in advance for your help! >>>> >> >> >>>> >> >> Regards, >>>> >> >> >>>> >> >> John >>>> >> >> >>>> >> >> ______________________________________________ >>>> >> >> 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. >>>> > >>> >> >> ______________________________________________ >> 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. >> > > > > -- > Antonio, Fabio Di Narzo > Ph.D. student at > Department of Statistical Sciences > University of Bologna, Italy > ______________________________________________ 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.