R将列表的每个`data.Frame`打印到单独的表中,标题为`data.Frame`名称 [英] R printing each `data.frame` of a list into separate Tables with caption as `data.frame` name
本文介绍了R将列表的每个`data.Frame`打印到单独的表中,标题为`data.Frame`名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
data.frame
打印到单独的表中,标题为data.frame
名称。我尝试的代码如下所示。它会生成表格,但标题错误。
library(tidyverse)
library(kableExtra)
#>
#> Attaching package: 'kableExtra'
#> The following object is masked from 'package:dplyr':
#>
#> group_rows
df1 <- data.frame(X = 1:3)
df2 <- data.frame(Y = 5:6)
ls1 <-
list(df1, df2) %>%
set_names(c("df1", "df2"))
ls1
#> $df1
#> X
#> 1 1
#> 2 2
#> 3 3
#>
#> $df2
#> Y
#> 1 5
#> 2 6
str(ls1)
#> List of 2
#> $ df1:'data.frame': 3 obs. of 1 variable:
#> ..$ X: int [1:3] 1 2 3
#> $ df2:'data.frame': 2 obs. of 1 variable:
#> ..$ Y: int [1:2] 5 6
names(ls1)
#> [1] "df1" "df2"
imap(
.x = ls1
, .f = ~ {
kbl(
x = .x
, format = "markdown"
, caption = names(.x)
)
}
)
#> $df1
#>
#>
#> Table: X
#>
#> | X|
#> |--:|
#> | 1|
#> | 2|
#> | 3|
#>
#> $df2
#>
#>
#> Table: Y
#>
#> | Y|
#> |--:|
#> | 5|
#> | 6|
推荐答案
应为.y
。如果是命名的list/vector
,则名称默认在.y
中,值在.x
中,这类似于在map2
中传递两个参数。如果没有名称,则.y
将返回list
purrr::imap(
.x = ls1
, .f = ~ {
kbl(
x = .x
, format = "markdown"
, caption =.y
)
}
)
-输出
$df1
Table: df1
| X|
|--:|
| 1|
| 2|
| 3|
$df2
Table: df2
| Y|
|--:|
| 5|
| 6|
这篇关于R将列表的每个`data.Frame`打印到单独的表中,标题为`data.Frame`名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文