R语言 为列表的每个元素获取单独的表

5vf7fwbs  于 2023-07-31  发布在  其他
关注(0)|答案(2)|浏览(142)

我做了一个map函数,它给了我一个列表。我想把列表中的每个元素转换成一个表,然后用markdown导出。
我有这个清单:

mtcars_list <- c ("am","gear","carb")

字符串
我有一个变量,我想group_by:“cyl”和我想总结的变量。在这种情况下,我将mtcars数据库的变量“vs”转换为因子:

mtcars$vs <- factor(mtcars$vs , levels=c('0', '1'))


然后我做了这个map::呼噜声功能,

df1 <- purrr::map(mtcars_list, ~ mtcars %>% select(cyl,vs,!!sym(.x)) %>% 
                    mutate(n=n() , .by=c(cyl, .data[[.x]], vs)) %>% 
                    mutate(n2=n(), .by=c(cyl, .data[[.x]]) ) %>% 
                    group_by(cyl, .data[[.x]], vs) %>% 
                    slice_tail(n=1) %>% 
                    mutate(perc=(n/n2)*100) %>% 
                    pivot_wider(id_cols = c(cyl,.data[[.x]]), names_from = vs, values_from = perc)
)


然而,当我使用markdown运行输出时,它只打印包含整个列表代码的列表,并且我不能将结果拆分到列表中每个元素的单独表中。
谢谢你!

x6492ojm

x6492ojm1#

您可能仍然需要显式地使用print(或其他具有副作用的函数,即输出)df1。下面这个代码块是怎么回事:

```{r, echo = FALSE}
 walk(df1, print)
字符串
(`walk`也由{purrr}提供)
qzwqbdag

qzwqbdag2#

在Markdown中,你可以使用适当的语法为列表中的每个元素创建单独的表。下面是一个如何实现此目标的示例:

1. First item

| Column 1 | Column 2 |
| -------- | -------- |
| Data 1   | Data 2   |

2. Second item

| Column 1 | Column 2 |
| -------- | -------- |
| Data 3   | Data 4   |

3. Third item

| Column 1 | Column 2 |
| -------- | -------- |
| Data 5   | Data 6   |

字符串
在上面的示例中,每个列表项后面都有一个单独的表,表中有自己的数据。当呈现时,这个Markdown将显示三个单独的表,每个表与其各自的列表项相关联。
请记住,并非所有Markdown解析器都支持此功能,因此最好预览输出,以确保它在您使用的平台中正确显示。此外,一些平台可能有特定的约定或扩展来处理复杂的表结构,因此如果遇到任何问题,您可能需要查阅您正在使用的平台或Markdown解析器的文档。
来源:https://www.w3seekers.com/md/md-tables.html

相关问题