代码之家  ›  专栏  ›  技术社区  ›  firmo23

用knifer在word文档中显示相关矩阵

  •  0
  • firmo23  · 技术社区  · 2 年前

    我有一个.rmd文件,我想在它下面编织并创建一个带有表的word文档。问题是,织完之后,我没有得到一张桌子,而是一个数字在另一个数字下面。

    如果还有其他选择,我愿意接受

    ---
    title: "Correlation table"
    author: "mk"
    date: "17/01/2022"
    output: word_document
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE)
    library(scipub)
    library(htmlTable)
    library(magrittr)
    library(mvtnorm)
    set.seed(666L)
    ```
    
    ```{r,echo=FALSE,include=FALSE}
    dat <- as.data.frame(rmvnorm(50, sigma = toeplitz(3:1)))
    colnames(dat) <- c("V1", "V2", "V3")
    cortable <- correltable(dat, html = FALSE)
    table2 <- as.data.frame(matrix(as.character(cortable$table), nrow = 3)) 
    caption <- cortable[["caption"]]
    Means <- formatC(colMeans(dat))
    Sds <- formatC(apply(dat, 2L, sd))
    table1 <- data.frame(Mean = Means, SD = Sds)
    ```
    
    ```{r, results='asis',echo=FALSE}
    css.cell <- matrix("padding: 5px;", ncol = 6L, nrow = 4L)
    css.cell[, 1L] <- 
      paste(css.cell[, 1L], "font-weight: bold;") # <-- bold row names
    cbind(table1, table2) %>%
      addHtmlTableStyle(css.cell = css.cell) %>% 
      htmlTable(caption = caption)
    ```
    
    0 回复  |  直到 2 年前
        1
  •  1
  •   Grzegorz Sapijaszko    2 年前

    简单的方法是:

    ---
    title: "Correlation table"
    author: "mk"
    date: "17/01/2022"
    output: word_document
    ---
    
    knitr::opts_chunk$set(echo = TRUE)
    library(scipub)
    library(htmlTable)
    library(magrittr)
    library(mvtnorm)
    set.seed(666L)
    
    dat <- as.data.frame(rmvnorm(50, sigma = toeplitz(3:1)))
    colnames(dat) <- c("V1", "V2", "V3")
    cortable <- correltable(dat, html = FALSE)
    table2 <- as.data.frame(matrix(as.character(cortable$table), nrow = 3)) 
    caption <- cortable[["caption"]]
    Means <- formatC(colMeans(dat))
    Sds <- formatC(apply(dat, 2L, sd))
    table1 <- data.frame(Mean = Means, SD = Sds)
    
    css.cell <- matrix("padding: 5px;", ncol = 6L, nrow = 4L)
    css.cell[, 1L] <- 
      paste(css.cell[, 1L], "font-weight: bold;") # <-- bold row names
    cbind(table1, table2) %>%
      addHtmlTableStyle(css.cell = css.cell) %>% 
      htmlTable(caption = caption)
    
    df <- cbind(table1, table2)
    knitr::kable(df)
    

    你可以用不同的方式玩游戏:

    问候,Grzegorz