Quarto中如何设置先完整显示代码块再展示运行输出?
Quarto中如何设置先完整显示代码块再展示运行输出?
嗨,这个问题我给学生做示例的时候也碰到过!Quarto默认的代码渲染逻辑确实会让带末尾注释的代码块出现顺序混乱的情况,不过有个超简单的参数就能完美解决——echo='hold'。
先来解释下你遇到的问题根源:默认情况下,Quarto是边执行代码边输出对应的代码段和结果,所以当你的代码块末尾有被注释掉的内容时,前面的代码执行完输出结果后,才会显示后面的注释部分,就导致了代码被拆成两部分展示的尴尬情况。
解决方法很直接,只需要在你的R代码块开头加上echo='hold'参数就行,这个参数的作用就是告诉Quarto:先把整个代码块的所有内容(包括注释、未执行的代码段)完整显示出来,再一次性输出所有运行结果。
给你改好的代码块示例:
library(palmerpenguins) suppressPackageStartupMessages(library(dplyr)) library(purrr) suppressPackageStartupMessages(library(janitor)) palmerpenguins::penguins |> select(where(~ is.factor(.x) | is.character(.x))) |> imap(~ { dat <- janitor::tabyl(.x) names(dat)[1] <- .y dat }) # Add a pipe above and use pluck() to extract a table # }) |> # pluck("species")
这样设置后,渲染出来的效果就是先看到完整的代码块(包括最后几行的注释),再看到代码运行的输出结果,完全不需要去复制代码搞两份(一份只显示不执行,一份只执行不显示),一步到位就能满足你给学生做示例的需求啦。
备注:内容来源于stack exchange,提问作者itsMeInMiami
相关产品推荐
相关产品推荐

