Search code examples
vertical-alignmentkableextra

Vertical alignment in kableextra


I am having some trouble aligning results in Kableextra.

---
title: "Report test 1"
author: "Adam"
date: "May 9, 2019"
output: pdf_document
---

COLLEGE: College of Education

DEPARTMENT: Office of Assessment and Accreditation

SEMESTER: Fall 2018

SECTION 1:  Please provide the mean and frequency distribution of the two required questions for all Traditional Delivery Courses. NOTE:  The MEAN and N is required. The Frequency is optional.  

x<-c(45,2,8,10,32,33)
y<-c(2,3,3,3,3,3)
EDLP_D.1<-cbind(x,y)

colnames(EDLP_D.1)<- c("Sheet", "Please indicate your level of satisfaction with the availability of the instructor outside the classroom. (In selecting your rating, consider the instructor's availability via established office hours, appointments, and opportunities for face-to-face interaction as well and as via telephones, e-mail, fax, and other means") 

#function to compute values needed for table 
vec_fun4 <- function(x,y){
  Vec <-c(colnames(x[,y]),round(mean(x[[y]]),2),length(which(!is.na(x[,y]==F))),length(which(x[,y]==1)),length(which(x[,y]==2)),length(which(x[,y]==3)),length(which(x[,y]==4)))
  return(Vec)   
}

#Switch from long format to wide format
item2.1 <- as.data.frame(t(as.matrix(vec_fun4(EDLP_D.1,1))))

#Make table
library(kableExtra)

kable(item2.1,"latex" ,booktabs=T, align = "lcccccc", col.names=linebreak(c(' ','Mean','\\textit{N}' ,'Strongly\n Disagree','Disagree','Agree','Strongly\n Agree')),row.names = F,escape=F) %>% 
  column_spec(1, width = "20em" )

I would like to have the numeric values centered horizontally and vertically within their cells.

I have attached a copy of the table here

Table


Solution

  • I don't have enough points to leave a comment. I am having the same issue, did you ever figure this out?

    You can try this function to center the text:

    centerText <- function(text){
        paste0("\\multirow{1}{*}[0pt]{", text, "}")
      }
    

    However, this may mess up your formatting such as column width and text wrap like it did mine. Please let me know if you found a better solution.