如何消除R中apply语句执行函数后输出表格间的逗号
解决R中apply生成表格间的逗号问题
- 问题本质:
sapply执行后会返回一个包含所有表格的列表,R Markdown在渲染时会自动为列表元素添加逗号分隔,导致表格间出现多余逗号。 - 两种有效解决方式:
- 用
lapply替代sapply,并用invisible()包裹,抑制列表的输出:invisible(lapply(你的数据对象, 你的表格生成函数)) - 使用
purrr包的walk()函数(专门处理无返回值的副作用操作,不会生成列表):library(purrr) walk(你的数据对象, 你的表格生成函数)
- 用
示例代码对比
原问题复现代码(会出现逗号):
--- title: "Test" output: pdf_document --- ```{r} library(knitr) my_table <- function(x) { kable(data.frame(a = x, b = x*2), caption = paste("Table", x)) } sapply(1:2, my_table)
修改后代码(无逗号): ```r --- title: "Test" output: pdf_document --- ```{r} library(knitr) my_table <- function(x) { kable(data.frame(a = x, b = x*2), caption = paste("Table", x)) } # 方法1 invisible(lapply(1:2, my_table)) # 方法2(需先安装purrr包) # library(purrr) # walk(1:2, my_table)
内容的提问来源于stack exchange,提问作者kendalorgera
相关产品推荐
相关产品推荐

