簡體   English   中英

使用 kable() 格式化具有嵌套列的表

[英]format a table with a nested column with kable()

我正在制作 R markdown 文檔,展示進行一些模擬的過程。 簡而言之,模擬將是兩個變量的組合,每個變量都有 100 次試驗。 有時,我想在 .rmd 中顯示 dataframe 作為模擬 dataframe 正在構建。 有時,這意味着顯示帶有嵌套列(與tidyr嵌套)的 dataframe 只是為了顯示“看,這里有 100 件事情”。

當我使用head()顯示帶有嵌套列的 dataframe 時,嵌套列顯示為帶有尺寸的<list> (見圖 1)。 見下圖。 我喜歡這個 output 因為我只想展示“看,這里有 100 件東西倒塌了”。

圖 1 - head() 的輸出

但是,當我使用kable()時(出於格式化原因,我更喜歡它)它會用逗號擴展列表列,我不喜歡它。 看這里:

在此處輸入圖像描述

有沒有辦法可以讓 kable 格式化,但嵌套列仍然顯示為<tibble [100 × 1]>

rmd 的 R 塊在這里:


    \```{r , message=FALSE} <- remove slash
    
    library(tibble)
    library(dplyr)
    library(tidyr)
    library(knitr)
    library(kableExtra)
    
    
    df <- tibble(
      var1 = c(1,2,3,1,2,3,1,2,3),
      var2 = c("a","a","a","b","b","b","c","c","c")
    ) %>%
      group_by(var1, var2) %>%
      slice(rep(1:n(), each = 100)) %>%
      mutate(trial = c(1:n())) %>%
      nest(data = trial)
    
    head(df)
    
    kable(head(df)) %>%
        kable_minimal() 
    \``` <- remove that slash

也許,使用可reactable

\```{r , message=FALSE, echo = FALSE} 

library(tibble)
library(dplyr)
library(tidyr)
library(knitr)
library(reactable)

df <- tibble(
  var1 = c(1,2,3,1,2,3,1,2,3),
  var2 = c("a","a","a","b","b","b","c","c","c")
) %>%
  group_by(var1, var2) %>%
  slice(rep(1:n(), each = 100)) %>%
  mutate(trial = c(1:n())) %>%
  nest(data = trial)


reactable(df %>% 
              ungroup %>%
               mutate(data = NULL), details = function(index) {
  tmp <- df$data[[index]]
  htmltools::div(style = "padding: 16px", reactable(tmp))

})
\``` 

-輸出

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM