Christian T Stackhouse (Campus)
2016-Mar-22 19:32 UTC
[R] Help batch saving elements of a list into unique files
Hello! The overall goal I have is taking a large data frame and splitting it into several smaller data frames (preserving column headers) which I can save as txt files to feed into my APACHE ANY23 server for conversion into RDF. This is what I call to split up the original file: out <- split(affymetrix, (seq(nrow(affymetrix))-1) %/% 140) I have a list (out) of length 187 for which each element is a dataframe. I want to iteratively save each data frame as a separate tab file with a naming structure such as: affymetrix1.txt, affymetrix2.txt, ... affymetrix187.txt Before that, I need to modify the headers to remove a prefix "X0. , X1., ... X187." that was introduced during my original splitting. I need to remove all characters before and including the first "." If anyone has a better way of doing this, please let me know. Otherwise, help with how to perform batch editing of the headers and batch saving of the files would be greatly appreciated! Best, Christian T. Stackhouse | Graduate Student GBS Neuroscience Theme Department of Neurosurgery Department of Radiation Oncology UAB | The University of Alabama at Birmingham Hazelrig-Salter Radiation Oncology Center | 1700 6th Ave S | Birmingham, AL 35233 M: 919.724.6890 | ctstackh at uab.edu | cstackhouse at uabmc.edu | ctstackh at gmail.com uab.edu<http://uab.edu/> Knowledge that will change your world [[alternative HTML version deleted]]
Jim Lemon
2016-Mar-22 21:48 UTC
[R] Help batch saving elements of a list into unique files
Hi Christian, This untested script might get you going (assuming you want a CSV format): for(affdf in 1:length(out)) { names(out[[affdf]])<-lapply(strsplit(names(out[[affdf]]),"[.]"),"[",2) write.csv(out[[affdf]],file=paste("affymetrix",affdf,".txt",sep="")) } Jim On Wed, Mar 23, 2016 at 6:32 AM, Christian T Stackhouse (Campus) <ctstackh at uab.edu> wrote:> Hello! > > > The overall goal I have is taking a large data frame and splitting it into several smaller data frames (preserving column headers) which I can save as txt files to feed into my APACHE ANY23 server for conversion into RDF. > > > This is what I call to split up the original file: > > > out <- split(affymetrix, (seq(nrow(affymetrix))-1) %/% 140) > > > I have a list (out) of length 187 for which each element is a dataframe. I want to iteratively save each data frame as a separate tab file with a naming structure such as: affymetrix1.txt, affymetrix2.txt, ... affymetrix187.txt > > > Before that, I need to modify the headers to remove a prefix "X0. , X1., ... X187." that was introduced during my original splitting. I need to remove all characters before and including the first "." > > > If anyone has a better way of doing this, please let me know. Otherwise, help with how to perform batch editing of the headers and batch saving of the files would be greatly appreciated! > > > Best, > > Christian T. Stackhouse | Graduate Student > GBS Neuroscience Theme > Department of Neurosurgery > Department of Radiation Oncology > UAB | The University of Alabama at Birmingham > Hazelrig-Salter Radiation Oncology Center | 1700 6th Ave S | Birmingham, AL 35233 > M: 919.724.6890 | ctstackh at uab.edu | cstackhouse at uabmc.edu | ctstackh at gmail.com > > uab.edu<http://uab.edu/> > Knowledge that will change your world > > > [[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.
Christian T Stackhouse (Campus)
2016-Mar-22 22:13 UTC
[R] Help batch saving elements of a list into unique files
Jim, It worked! It wrote out the files, but unfortunately, it didn't work for the file headers. I should have mentioned this is what the headers look like: X0.Classical.10.11.1_.HuEx.1_0.st.v2..CEL After running your script, that header changes to: 10. I'd just like to remove the "X0." prefix or in the case of file 189 the "X188." prefix leaving: Classical.10.11.1_.HuEx.1_0.st.v2..CEL Thank you so much for your help! I'll try playing with it myself, but if you have any further insights they would be greatly appreciated! Best, Christian T. Stackhouse | Graduate Student GBS Neuroscience Theme Department of Neurosurgery Department of Radiation Oncology UAB | The University of Alabama at Birmingham Hazelrig-Salter Radiation Oncology Center | 1700 6th Ave S | Birmingham, AL 35233 M: 919.724.6890 | ctstackh at uab.edu | cstackhouse at uabmc.edu | ctstackh at gmail.com uab.edu Knowledge that will change your world ________________________________________ From: Jim Lemon <drjimlemon at gmail.com> Sent: Tuesday, March 22, 2016 4:48 PM To: Christian T Stackhouse (Campus) Cc: r-help at r-project.org Subject: Re: [R] Help batch saving elements of a list into unique files Hi Christian, This untested script might get you going (assuming you want a CSV format): for(affdf in 1:length(out)) { names(out[[affdf]])<-lapply(strsplit(names(out[[affdf]]),"[.]"),"[",2) write.csv(out[[affdf]],file=paste("affymetrix",affdf,".txt",sep="")) } Jim On Wed, Mar 23, 2016 at 6:32 AM, Christian T Stackhouse (Campus) <ctstackh at uab.edu> wrote:> Hello! > > > The overall goal I have is taking a large data frame and splitting it into several smaller data frames (preserving column headers) which I can save as txt files to feed into my APACHE ANY23 server for conversion into RDF. > > > This is what I call to split up the original file: > > > out <- split(affymetrix, (seq(nrow(affymetrix))-1) %/% 140) > > > I have a list (out) of length 187 for which each element is a dataframe. I want to iteratively save each data frame as a separate tab file with a naming structure such as: affymetrix1.txt, affymetrix2.txt, ... affymetrix187.txt > > > Before that, I need to modify the headers to remove a prefix "X0. , X1., ... X187." that was introduced during my original splitting. I need to remove all characters before and including the first "." > > > If anyone has a better way of doing this, please let me know. Otherwise, help with how to perform batch editing of the headers and batch saving of the files would be greatly appreciated! > > > Best, > > Christian T. Stackhouse | Graduate Student > GBS Neuroscience Theme > Department of Neurosurgery > Department of Radiation Oncology > UAB | The University of Alabama at Birmingham > Hazelrig-Salter Radiation Oncology Center | 1700 6th Ave S | Birmingham, AL 35233 > M: 919.724.6890 | ctstackh at uab.edu | cstackhouse at uabmc.edu | ctstackh at gmail.com > > uab.edu<http://uab.edu/> > Knowledge that will change your world > > > [[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.