【问题标题】:Column alignment with kableExtra using group_rows使用 group_rows 与 kableExtra 进行列对齐
【发布时间】:2018-04-02 01:01:56
【问题描述】:

我正在使用 Rmarkdown 生成频率表的 PDF。在从questionr 运行freq 并使用group_rows 添加行分组后生成复杂的频率表会导致第一组的最后一行出现对齐问题。此处可重现的示例:

---
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)
```

编织时给我这个:

第一个“Total”文本是右对齐的,但其他一切都很好。在kable 行中添加align=('lrrr') 没有任何作用,而align=('crrr') 有点混乱。对group_rows 使用索引方法会产生相同的结果。当省略group_rows 命令时,第一列中的所有内容都是左对齐的,看起来很好。我的预感是 kableExtra 不能很好地与 questionr 配合使用,因为在运行 questionr::freq 时会创建“总计”行。

【问题讨论】:

    标签: r dplyr r-markdown kableextra kable


    【解决方案1】:

    这是当前 CRAN 版本的 kableExtra 0.5.2 中的一个错误。它已在开发版本中修复。我将在下周发布 CRAN。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      相关资源
      最近更新 更多