简体   繁体   中英

R, Latex and RMarkdown: table() input for xtable() missing column and row labels?

I am trying to create a pretty LaTeX table where the names of the row and column variables of a table are included when using the xtable library.

MWE:

```{r results="asis"}
test <- data.frame(Apples=c(1,2,3), Oranges=c(4,5,6), Watermelons=c(7,8,9))
testxtab <- xtable(with(test,table(Apples,Oranges)))
print(testxtab, comment=FALSE)
```

The result is a LaTeX table that is missing the "Apples" and "Oranges" labels. How do I include them?

I'm sure you could adapt this to xtable , but here's one approach you can take using pixiedust . (It isn't a very elegant solution, but given the structure of the table object, I'm not sure elegant is an option).

library(pixiedust)
obj <- with(test, table(Apples, Oranges))

dimnames <- names(attr(obj, "dimnames"))

head <- 
  rbind(c("", dimnames[2], rep("", ncol(obj) - 1)),
        c(dimnames[1], colnames(obj))) %>%
  as.data.frame(stringsAsFactors = FALSE)
body <- cbind(rownames(obj), obj) %>%
  as.data.frame(stringsAsFactor = FALSE)

dust(body) %>%
  redust(head, part = "head") %>%
  sprinkle(rows = 1,
           cols = 2:4,
           merge = TRUE,
           part = "head") %>%
  medley_bw() %>%
  sprinkle_print_method("latex")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM