Nic*_*ano 5 r contingency knitr r-markdown kableextra
我正在尝试在 rmarkdonw html 文档中生成格式良好的列联表。这是代码:
\n\n---\ntitle: "Probabilidad"\nauthor: "Nicol\xc3\xa1s Molano Gonzalez"\ndate: "7 de Abril de 2020"\noutput:\n html_document:\n fig_caption: true\n---\n\n```{r echo=F, message = FALSE, warning =F}\n\nlibrary(tidyverse)\nlibrary(kableExtra)\nlibrary(knitr)\n\nset.seed(150)\n\n```\n
Run Code Online (Sandbox Code Playgroud)\n\n这是表的数据:
\n\n```{r echo=FALSE, results = \'asis\'}\n\nca_ctr_r<-.3\n\nn <- 250\nnCA <- round(n*ca_ctr_r)\nz0 <- data.frame(status=c(rep("CA",nCA),rep("CTR",n-nCA)))\nz0$exposition <- NA\nexp_CA <- .45\nexp_CTR <- .19\n\nz0[z0$status %in% "CA","exposition"] <- ifelse(runif(nCA) < exp_CA,"yes","no")\nz0[z0$status %in% "CTR","exposition"] <- ifelse(runif(n-nCA) < exp_CA,"yes","no")\n\nz0$exposition <- factor(z0$exposition,levels = c("yes","no"))\n\n```\n
Run Code Online (Sandbox Code Playgroud)\n\n这是打印列联表的代码,应该改进。
\n\n```{r echo=FALSE, results = \'asis\'}\n\nres <- kable(t(table(z0)%>%addmargins))\n#res <- kable(t(table(z0)))\nkable_styling(res,"striped", position = "center",full_width = F) %>% add_header_above(c("exposition","status"=2," "))\n\n```\n
Run Code Online (Sandbox Code Playgroud)\n\n我希望代码的输出与基本 R 的输出类似,即:
\n\n status\nexposition CA CTR Sum\n no 40 96 136\n yes 35 79 114\n Sum 75 175 250\n
Run Code Online (Sandbox Code Playgroud)\n\nadd_header_above
让我获得列的标题,但我正在努力在正确的位置获得行(说明)的标题。
我尝试了一种解决方法,在将其传递给 kable 之前,在表的左侧显式添加一列。
library(tidyverse)
library(kableExtra)
library(knitr)
cont.table = mtcars %>% select(gear, carb) %>%
group_by_all() %>% tally() %>%
spread(key = gear, value = n)
cont.table %>%
rename("\t" = carb) %>%
add_column(" " = c("carb", rep(" ", nrow(.) - 1)), .before = "\t") %>%
kable() %>%
kable_styling(position = "left", full_width = F, ) %>%
add_header_above(c("", "", "gear", rep(" ", ncol(cont.table) - 2))) %>%
column_spec(1:2, bold = TRUE)
Run Code Online (Sandbox Code Playgroud)