The latex functionlatex.default
does not use the column group argument when rownames=NULL
. In the function we have :
if (length(rowname)) {
cx <- cbind(rowname, cx)
col.just <- c(rowlabel.just, col.just)
if (length(extracolheads))
extracolheads <- c("", extracolheads)
collabel.just <- c(rowlabel.just, collabel.just)
if (length(cgroup) == 0L)
colheads <- c(rowlabel, colheads)
else {
colheads <- c("", colheads)
cgroup <- c(rowlabel, cgroup)
rlj <- ifelse(rowlabel.just == "l", "l", "c")
cgroup.just <- c(rlj, cgroup.just)
n.cgroup <- c(1, n.cgroup)
cgroup.cols <- 1 + cgroup.cols
cline <- paste(sl, "cline{", cgroup.cols[, 1], "-", cgroup.cols[,
2], "}", sep = "", collapse = " ")
}
nc <- 1 + nc
}
with cgroup.cols as the first and last columns computed from the n.cgroup
argument
first.col last.col
[1,] 1 5
[2,] 7 12
I think it's a bug. So currently the only way to go is to edit your tex output manually, using this function, in which your repeat the arguments that you passed to your latex for the name of your tex file
and n.cgroup
:
change_cline <- function(file,n.cgroup){
file_to_edit <-readLines(file)
pos <- grep("cline",file_to_edit) # get the position of cline in the tex file
cgroup.cols <- matrix(c(1,n.cgroup[2]+1,n.cgroup[1],sum(n.cgroup)+1), nrow=2)
file_to_edit[pos]<- paste("\\cline{", cgroup.cols[, 1], "-", cgroup.cols[,
2], "}", sep = "", collapse = " ")
cat(file_to_edit, file = file,sep="\n")
return(invisible(NULL))
}
Final script :
data(mtcars)
la<-latex(mtcars, file ='mtcars2.tex', cgroup = c("Group 1", "Group 2"), n.cgroup = c(5, 6), rowname = NULL)
change_cline(file='mtcars2.tex',n.cgroup = c(5 ,6))
which produces the correct format
