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.
Jim Lemon
2016-Mar-22 22:39 UTC
[R] Help batch saving elements of a list into unique files
Okay, I just snipped off the first token in the header labels assuming
that there would be no more periods. Try this:
drop_token1<-function(x) {
return(paste(x[2:length(x)],sep="."))
}
for(affdf in 1:length(out)) {
names(out[[affdf]])<-lapply(unlist(strsplit(names(out[[affdf]]))),drop_token1)
write.csv(out[[affdf]],file=paste("affymetrix",affdf,".txt",sep=""))
}
Jim
On Wed, Mar 23, 2016 at 9:13 AM, Christian T Stackhouse (Campus)
<ctstackh at uab.edu> wrote:> 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.
Christian T Stackhouse (Campus)
2016-Mar-22 22:43 UTC
[R] Help batch saving elements of a list into unique files
Thank you, Jim. I got this error returned:
Error in strsplit(names(out[[affdf]])) :
argument "split" is missing, with no default
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 5:39 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
Okay, I just snipped off the first token in the header labels assuming
that there would be no more periods. Try this:
drop_token1<-function(x) {
return(paste(x[2:length(x)],sep="."))
}
for(affdf in 1:length(out)) {
names(out[[affdf]])<-lapply(unlist(strsplit(names(out[[affdf]]))),drop_token1)
write.csv(out[[affdf]],file=paste("affymetrix",affdf,".txt",sep=""))
}
Jim
On Wed, Mar 23, 2016 at 9:13 AM, Christian T Stackhouse (Campus)
<ctstackh at uab.edu> wrote:> 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.