Search code examples
rtabular

insert a column into a tabular object


I found this blog on getting a nested table into LaTeX format(Blog Link). I like the outcome but want to insert a column into the object at the beginning after the rownames. I'm used to dealing with data frames so dealing with this beast is more difficult than typical column indexing.

Here's what I have now:

          pre         post       
 approach mean  sd    mean  sd   
 1        24.17 8.310 54.33 11.01
 2        25.50 9.434 65.25 16.32
 3        26.33 9.139 63.17 12.53

And here's what I'd like it to look like:

             pre         post       
 approach n  mean  sd    mean  sd   
 1        12 24.17 8.310 54.33 11.01
 2        12 25.50 9.434 65.25 16.32
 3        12 26.33 9.139 63.17 12.53

Here's the dput of z and also the column of n's I'd like to insert.

Thank you in advance.

z <- structure(list(24.1666666666667, 25.5, 26.3333333333333, 8.31027111835746, 
    9.4339811320566, 9.13866245766587, 54.3333333333333, 65.25, 
    63.1666666666667, 11.0068848977136, 16.3157759685081, 12.5323822978956), .Dim = 3:4, .Dimnames = list(
    NULL, c("term", "term", "term", "term")), rowLabels = structure(c("1", 
"2", "3"), .Dim = c(3L, 1L), .Dimnames = list(NULL, "approach"), justification = structure(c(NA_character_, 
NA_character_, NA_character_), .Dim = c(3L, 1L)), colnamejust = NA_character_, justify = NA, suppress = 0), colLabels = structure(c("pre", 
"mean", NA, "sd", "post", "mean", NA, "sd"), .Dim = c(2L, 4L), justification = structure(c(NA_character_, 
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, 
NA_character_, NA_character_), .Dim = c(2L, 4L)), colnamejust = character(0), justify = NA, suppress = 0), table = value * 
    v * approach ~ variable2 * result_variable, formats = structure(c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = 3:4, .Dimnames = list(
    NULL, c("format", "format", "format", "format"))), justification = structure(c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = 3:4, .Dimnames = list(
    NULL, c("justification", "justification", "justification", 
    "justification"))), class = "tabular")

structure(c(12L, 12L, 12L), .Names = c("1", "2", "3"))

Solution

  • The only (known ?) way is to re-assign re-ordered:

    R> mockup <- data.frame(B=21:23, C=31:33)
    R> mockup
       B  C
    1 21 31
    2 22 32
    3 23 33
    R>
    

    Now add column A:

    R> mockup[,"A"] <- 1:3
    R> mockup
       B  C A
    1 21 31 1
    2 22 32 2
    3 23 33 3
    R>
    

    And reorder:

    R> mockup <- mockup[,c("A", "B", "C")]
    R> mockup
      A  B  C
    1 1 21 31
    2 2 22 32
    3 3 23 33
    R> 
    

    Presto. New column at the beginning.