Hi Joshua,

You may use 'do.call()'.  Please see the output in below:

> result <- lapply(names(op), function(x){
+   col1 <- x
+   col2 <- row.names(op[[x]])
+   mat <- op[[x]]
+   row.names(mat) <- NULL
+   rval <- cbind(col1, col2, mat)
+   names(rval) <- c("trait", "locus", names(mat))
+   rval
+ })
> result
[[1]]
  trait    locus chr  pos ci.low ci.high  lod
1    bp c7.loc45   7 47.7  36.71    56.7 6.11
2    bp c15.loc8  15 12.0   3.96    22.8 5.29

[[2]]
  trait     locus chr  pos ci.low ci.high  lod
1    hr  c2.loc54   2 59.8   14.8    87.8 4.19
2    hr D15MIT184  15 22.8   12.0    36.0 3.15

[[3]]
  trait     locus chr pos ci.low ci.high  lod
1    bw c15.loc16  15  20     11      30 6.75

[[4]]
     trait     locus chr  pos ci.low ci.high  lod
1 heart_wt c12.loc49  12 51.2   28.2    62.2 3.65

> do.call(rbind, result)
     trait     locus chr  pos ci.low ci.high  lod
1       bp  c7.loc45   7 47.7  36.71    56.7 6.11
2       bp  c15.loc8  15 12.0   3.96    22.8 5.29
3       hr  c2.loc54   2 59.8  14.80    87.8 4.19
4       hr D15MIT184  15 22.8  12.00    36.0 3.15
5       bw c15.loc16  15 20.0  11.00    30.0 6.75
6 heart_wt c12.loc49  12 51.2  28.20    62.2 3.65
>

Is this what you are looking for?  I hope this helps.

Chel Hee Lee

On 1/20/2015 9:23 AM, Shuhua Zhan wrote:
Hi Chel,
Thank you very much for your help!
I'm sorry I did not post my wanted output correctly. I only want the colnames 
of the data frame occur once as a table:
trait locus  chr  pos ci.low ci.high  lod
  bp c7.loc45   7 47.7  36.71    56.7 6.11
  bp c15.loc8  15 12.0   3.96    22.8 5.29
  hr c2.loc54    2 59.8   14.8    87.8 4.19
  hr D15MIT184  15 22.8   12.0    36.0 3.15
  bw c15.loc16  15  20     11      30 6.75
  heart_wt c12.loc49  12 51.2   28.2    62.2 3.65
How to add command to your script to scape those colnames?
Thanks again,
Joshua

----- Original Message -----
From: "Chel Hee Lee" <chl...@mail.usask.ca>
To: "Shuhua Zhan" <sz...@uoguelph.ca>, "r-help" <r-help@r-project.org>
Sent: Monday, January 19, 2015 10:44:23 PM
Subject: Re: [R] add a list name into the list content in a new output

I am just using the first two components of your output.

  > op
$bp
           chr  pos ci.low ci.high  lod
c7.loc45   7 47.7  36.71    56.7 6.11
c15.loc8  15 12.0   3.96    22.8 5.29

$hr
            chr  pos ci.low ci.high  lod
c2.loc54    2 59.8   14.8    87.8 4.19
D15MIT184  15 22.8   12.0    36.0 3.15

  >
  > result <- lapply(names(op), function(x){
+   col1 <- x
+   col2 <- row.names(op[[x]])
+   mat <- op[[x]]
+   row.names(mat) <- NULL
+   rval <- cbind(col1, col2, mat)
+   names(rval) <- c("trait", "locus", names(mat))
+   rval
+ })
  >
  > result
[[1]]
    trait    locus chr  pos ci.low ci.high  lod
1    bp c7.loc45   7 47.7  36.71    56.7 6.11
2    bp c15.loc8  15 12.0   3.96    22.8 5.29

[[2]]
    trait     locus chr  pos ci.low ci.high  lod
1    hr  c2.loc54   2 59.8   14.8    87.8 4.19
2    hr D15MIT184  15 22.8   12.0    36.0 3.15

  >

Is this what you are looking for?  I hope this helps.

Chel Hee Lee


On 01/19/2015 02:14 PM, Shuhua Zhan wrote:
Dear All,
I'd like to add a list name into the list contents to make a new output. The list is a 
list of data.frame derived from summary command in Rqtl. I want to add this list name to 
the data frame with a given column name such as "trait" and output this entire 
list as a table tab delimited as below.
Here is the list generated by summary command in Rqtl:
summary(out.all, threshold=3, format="tabByCol")
bp:
           chr  pos ci.low ci.high  lod
c7.loc45   7 47.7  36.71    56.7 6.11
c15.loc8  15 12.0   3.96    22.8 5.29

hr:
            chr  pos ci.low ci.high  lod
c2.loc54    2 59.8   14.8    87.8 4.19
D15MIT184  15 22.8   12.0    36.0 3.15

bw:
            chr pos ci.low ci.high  lod
c15.loc16  15  20     11      30 6.75

heart_wt:
            chr  pos ci.low ci.high  lod
c12.loc49  12 51.2   28.2    62.2 3.65


The new output I want:

trait locus  chr  pos ci.low ci.high  lod
bp c7.loc45   7 47.7  36.71    56.7 6.11
bp c15.loc8  15 12.0   3.96    22.8 5.29

trait locus  chr  pos ci.low ci.high  lod
hr c2.loc54    2 59.8   14.8    87.8 4.19
hr D15MIT184  15 22.8   12.0    36.0 3.15

trait locus chr pos ci.low ci.high  lod
bw c15.loc16  15  20     11      30 6.75

heart_wt locus chr  pos ci.low ci.high  lod
trait c12.loc49  12 51.2   28.2    62.2 3.65

I appreciate for your help for any suggestions!!
Joshua

______________________________________________
R-help@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.


______________________________________________
R-help@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.

Reply via email to