当example( )
运行时,我正在解析某些R示例代码的输出。例如,当我运行example("withCallingHandlers")
时,我看到前面带有“wthClH>
”的输出,在我看来是示例代码,输出前面是“[1]
”,这似乎是是代码生成的控制台输出。到现在为止还挺好。
但是有一些行以“wthClH> ##
”或“wthClH> ##D
”开头。这两个似乎都是标记为“未运行”的代码块的一部分但是我不理解运行或不运行特定示例行的决策的任何基础 - 有时它有一个“未运行”行,并且然后几行后几乎运行相同的线。
然后有一些用尖括号括起来的行,如:<simpleError: test error >
。我将这些作为一种元评论,比标记为##
的代码评论更加评论。但我完全不相信我在这方面是正确的。
这些帮助示例排版约定是否在任何地方解释过?如果是这样的话,我应该如何找到它,除非我在某种程度上忽视了它,否则在example( )
的帮助或帮助中没有提及任何这些约定。< / p>
答案 0 :(得分:1)
关闭。
wthClH>
是一个修改过的“R提示符”,演示了示例代码显示和可选执行的每一行。使用/演示的每一行,无论是实际代码还是仅仅是注释,都以此为前提。这是正常的R提示
>
但特别是代码示例。我怀疑它不是>
,以便在调用example(...)
之前清楚地将其示例代码执行与控制台上的任何内容分开。
wthClH> ##
(带或不带“D”)仅仅是注释,被忽略而不执行。想象一下如果你直接在R命令行输入## hello world
会发生什么,所以它看起来像
> ## hello world
......也就是说,没有任何反应,它只是一个评论。
有时它是人类的单词,有时它是R代码,不打算执行但仍然作为一个可能的例子显示。为什么它“未运行”的“原因”可能是它只是完成一个完整的调用,允许你手动尝试每个组件;通常,在R man-pages(“帮助”)中,代码可能包含在“dontrun”块中,因为它可能依赖于测试计算机和/或用户计算机上可能不存在的内容。
大多数其他输出,例如
[1] "Hello"
<simpleError: test error>
和
[1] "Hello"
<simpleError in doTryCatch(return(expr), name, parentenv, handler): fred>
和
Warning in withCallingHandlers({ : A
[1] 3
是执行的命令的输出;只执行那些没有以评论开头的命令(一个或多个#
)。
我同意这些排版装饰器(wthClH>
)并非绝对必要。