2
我正在使用Rmarkdown生成頻率表的PDF。在運行freq
從questionr
運行後生成一個複雜的頻率表,並添加行分組與group_rows
導致第一組最後一行的對齊問題。重複的例子,在這裏:使用group_rows與kableExtra進行列對齊
---
output:
pdf_document:
latex_engine: xelatex
fig_caption: true
---
```{r}
library(haven)
library(questionr)
library(dplyr)
library(magrittr)
library(knitr)
library(kableExtra)
# Build some data
x <- rep(c(1,0),times=50)
y <- c(rep(1,times=25),rep(0,times=75))
z <- c(rep(1,times=75),rep(0,times=25))
# Function to run frequencies on several variables at a time
MassFreq <- function(...){
step1 <- list(...) # Wrap items into a list
step2 <- lapply(step1,freq,total=TRUE) # run frequencies on all items
step3 <- bind_rows(step2) # collapse list results into single df
Response <- unlist(lapply(step2,row.names),recursive=FALSE) # Get row names from frequencies
step4 <- cbind(Response,step3) #Stick row names at front of the dataframe
}
# Run function - returns a data frame object
test <- MassFreq(x,y,z)
# Build table
test %>%
kable(format="latex", booktabs = TRUE, row.names=FALSE) %>%
group_rows("Group 1",1,3) %>%
group_rows("Group 2",4,6) %>%
group_rows("Group 3",7,9)
```
使我這個當針織:
第一個「總」的文本是右對齊,但一切都很好。在kable
行中添加align=('lrrr')
行什麼都不做,align=('crrr')
是一團糟。使用group_rows
的索引方法會產生相同的結果。當忽略group_rows
命令時,第一列中的所有內容都是左對齊的,看起來很好。我的直覺是,kableExtra
與questionr
的配合不好,因爲在運行questionr::freq
時會創建「總計」行。