r - rmarkdown - 渲染数据帧列表

时间:2015-07-09 12:21:54

标签: r r-markdown

是否可以将降价文档中的数据框列表呈现为单个表?

示例

给出代码块

```{r listOfDf}

library(knitr)

df <- data.frame(a=rnorm(10),b=rnorm(10),c=c(rep("a",5), rep("b",5)))
l_df <- split(df, df$c)

kable(l_df)

```

此输出

l_df_output

但是我想要更接近R控制台中的内容:

> l_df
$a
           a          b c
1  1.2869909 -0.3117932 a
2  1.4621792  1.2826924 a
3 -0.4274641  0.3335532 a
4  0.7882973 -1.1966702 a
5 -1.2086910  0.1549691 a

$b
            a         b c
6  -0.9460508 1.4679430 b
7   0.6580554 0.5806850 b
8  -0.7103335 2.6036176 b
9  -2.0110167 2.0488055 b
10  0.7691045 0.3652907 b

但是这也表现为一个表(因此使用kable()

我试过循环*

for(i in 1:length(l_df)){
  kable(l_df[i])
}

但这也不起作用(*但它确实适用于图表)

2 个答案:

答案 0 :(得分:4)

10K No 5K Yes 7.5K Yes 8.75K No 8.125K Yes 8.44K Yes 8.6K No 8.52K No 8.48K Yes 8.5K Yes - Hypothetical limit in example 包已创建为transform almost any R objects into markdown。 E.g:

pander

答案 1 :(得分:0)

我将此功能与{r results='asis'}

一起使用
affiche_multi_df <- function(b){
  for ( i in seq_along(b)){
    cat(glue::glue("### {names(b)[i]} \n\n"))
    b[[i]] %>%
      DT::datatable() %>%
      htmltools::tagList() %>%
      print()

  }}

像这样

```{r results='asis'} 
list(a=iris,b=iris,c=iris) %>%  affiche_multi_df() 
```