在夸托文档中,我希望最后一个R块根据前面块的结果计算执行摘要。这个最后的块输出如何出现在报告的顶部?
预期输出:最终块(exec-summary)输出应出现在“Executive Summary”下和“Number of Rows”之前:
---
title: "exec-summary"
format: html
---
## Executive Summary Presentation
### Number of Rows
```{r chunk1}
x <- nrow(mtcars)
Number of Columns
y <- ncol(mtcars)
Executive Summary Computation
glue::glue("There are {x} rows an {y} columns")
2条答案
按热度按时间3bygqnnd1#
您可以使用Lua过滤器来重新定位跨格式工作的块输出(即对于pdf,html,docx等)或可以使用javascript,这将只适用于html输出格式。我在下面展示这两种方法。
对于这两种情况,使用
:::
创建一个占位符空pandoc div,并使用一个id(将由lua或js代码使用),并使用另一个具有id的div Packageexec-summary
代码块(同样,将由lua或js代码使用以获取输出内容)。使用Lua Filter(鲁棒方法)
Number of Columns
Executive Summary Computation
::: {#exec-summary}
:::
local exec_summary_output = nil
function get_exec_summary_output()
return {
Div = function(el)
if el.classes:includes("cell-output") then
exec_summary_output = el.content
el.content = ""
return el
end
end
}
end
function get_exec_summary()
return {
Div = function(el)
if el.identifier == "exec-summary" then
local elm = el:walk(get_exec_summary_output())
return elm
end
return el
end
}
end
function replace_placeholder(content)
return {
Div = function(el)
if el.identifier == "placeholder" then
el.content = content
end
return el
end
}
end
function Pandoc(doc)
local doc = doc:walk(get_exec_summary())
return doc:walk(replace_placeholder(exec_summary_output))
end
title: "exec-summary"
format:
html:
include-in-header: move-output.html
Executive Summary Presentation
::: {#placeholder}
:::
Number of Rows
Number of Columns
Executive Summary Computation
::: {#exec-summary}
:::
taor4pac2#
我不认为你可以在级别2头之后立即得到你想要的东西(因为
x
和y
都不存在),但是你可以这样做:Number of Rows
Number of Columns