Marius Hofert
2012-May-02  07:26 UTC
[R] Hmisc's latex: na.blank and grouping not working as expected
Dear expeRts,
Why does na.blank=TRUE not replace the NA's in the following LaTeX table?
x <- matrix(1:72, ncol=4, nrow=8)
colnames(x) <- c("gr1.sgr1", "gr1.sgr2",
"gr2.sgr1", "gr2.sgr2")
rn <- apply(expand.grid(beta=c(0.25, 0.75), n=c(100, 500), d=c(10, 100))[,
3:1], 2, rmNames)
x <- cbind(rn, x) # append columns containing the row labels
x[2,5] <- NA
stopifnot(is.na(x[2,5]))
require(Hmisc)
latex(x,
      file="",
      na.blank=TRUE,
      rowlabel=c("d", "n", "beta"),
      booktabs=TRUE)
In the end, I would like to have the columns displayed in groups like this:
                        Group 1                     Group 2
d   n   beta   Sub-group 1   Sub-group 2   Sub-group 1   Sub-group 2
10  100 0.25       1             9
        0.75       2
    500 0.25       3            10
        0.75       4            11             ...           ...
100 100 0.25       5            12
        0.75       6            13
    500 0.25       7            ...
        0.75       8
If anybody knows how to do this, please let me know :-) This is (one of) my
trial(s):
latex(x,
      file="",
      cgroup=c("", "Group 1", "Group 2"),
      n.cgroup=c(3, 2, 2),
      na.blank=TRUE,
      rowlabel=c("d", "n", "beta"),
      booktabs=TRUE)
Why are there two empty columns inserted and the table has suddenly 9 columns
instead of 7?
Cheers,
Marius
Marius Hofert
2012-May-03  04:56 UTC
[R] Hmisc's latex: na.blank and grouping not working as expected
I forgot to say what 'rmNames' is:
rmNames <- function(x) {x[c(FALSE, x[-1]==x[-length(x)])] <- "";
x}
With 
rmNames <- function(x) {x[c(FALSE, x[-1]==x[-length(x)])] <- NA; x} 
the option na.blank=TRUE works as expected. Also, the two empty columns are
inserted due to "cgroup", but I don't know how to avoid this.
On 2012-05-02, at 09:26 , Marius Hofert wrote:
> Dear expeRts,
> 
> Why does na.blank=TRUE not replace the NA's in the following LaTeX
table?
> 
> x <- matrix(1:72, ncol=4, nrow=8)
> colnames(x) <- c("gr1.sgr1", "gr1.sgr2",
"gr2.sgr1", "gr2.sgr2")
> rn <- apply(expand.grid(beta=c(0.25, 0.75), n=c(100, 500), d=c(10,
100))[, 3:1], 2, rmNames)
> x <- cbind(rn, x) # append columns containing the row labels
> x[2,5] <- NA
> stopifnot(is.na(x[2,5]))
> 
> require(Hmisc)
> latex(x,
>      file="",
>      na.blank=TRUE,
>      rowlabel=c("d", "n", "beta"),
>      booktabs=TRUE)
> 
> In the end, I would like to have the columns displayed in groups like this:
> 
>                        Group 1                     Group 2
> d   n   beta   Sub-group 1   Sub-group 2   Sub-group 1   Sub-group 2
> 10  100 0.25       1             9
>        0.75       2
>    500 0.25       3            10
>        0.75       4            11             ...           ...
> 100 100 0.25       5            12
>        0.75       6            13
>    500 0.25       7            ...
>        0.75       8
> 
> If anybody knows how to do this, please let me know :-) This is (one of) my
trial(s):
> 
> latex(x,
>      file="",
>      cgroup=c("", "Group 1", "Group 2"),
>      n.cgroup=c(3, 2, 2),
>      na.blank=TRUE,
>      rowlabel=c("d", "n", "beta"),
>      booktabs=TRUE)
> 
> Why are there two empty columns inserted and the table has suddenly 9
columns instead of 7?
> 
> Cheers,
> 
> Marius
>