如何在不在代码块前加上尖括号">"的情况下生成Sweave文档?

8
我如何生成一个不带角括号“>”的Sweave(或pgfSweave)文档中的代码块?我希望人们能够直接从PDF输出中复制我的代码。以下是我的文档片段,其中包含一个代码块:
请注意,因为我们的关联矩阵由0和1组成,其非对角线条目表示共同列的总数,这正是我们想要的。我们将使用%*%运算符告诉R执行此操作。让我们首先使用人员和所属组的玩具数据查看一个小例子,我们将使用table()函数将数据强制转换为关联矩阵,然后将关联矩阵乘以其转置以获取人员之间的共同组数。
>\> ToyDat <- data.frame(person = c("Sam", "Sam", "Sam", "Greg", "Tom", "Tom"), group = c("a", "b", "c", "a", "b", "c"), stringsAsFactors = F)
>\> ToyDatM <- as.matrix(table(ToyDat)) 
>\> ToyDatM

但是我希望代码看起来像这样:
> ToyDat <- data.frame(person = c("Sam", "Sam", "Sam", "Greg", "Tom", "Tom"), group = c("a", "b", "c", "a", "b", "c"), stringsAsFactors = F)    
> ToyDatM <- as.matrix(table(ToyDat)) 
> ToyDatM
2个回答

17

我认为在你的脚本顶部加上options(prompt = " ")将解决问题。

prompt(在options()中)用于控制交互式会话中提示所使用的文本字符串,我假设对通过Sweave处理的文档也是如此。

编辑:感谢Ben Bolker指出,options(prompt = " ", continue = " ")也可以解决"+"号问题。


5
好的,它确实会。在进行其他任何操作之前,您可能会想将options命令单独分块并使用echo=FALSE标记它以使其不显示。 - Aaron left Stack Overflow
7
我建议使用options(prompt=" ",continue=" ")来关闭+续行符号。这也是我现在在Sweave文档中几乎总是使用后者的原因。 - Ben Bolker

2
也许更好的策略是提供你的Rnw文件上Stangle的结果,它将包含整个文档中的命令,作为一个脚本可以提交给R或者剪切粘贴到R会话中。

例如,可以查看汉斯在这个问题的答案。http://stackoverflow.com/questions/4362747/print-the-sourced-r-file-to-an-appendix-using-sweave/5976333#5976333 - Aaron left Stack Overflow
实际上,对于一个“简单”的文档,我更愿意在使用制作pdf的工作流程中添加Stangle("Simple.Rnw")作为额外步骤。但是在实践中,我的Sweave文档总是最终成为一个包(在R-2.13中为inst/doc/Simple.Rnw,在devel中为vignettes/Simple.Rnw),然后在包安装时创建pdf和.R文件(并且位于system.file("doc", package="MyPackage") -- 我可以将数据和其他文档与我的文档捆绑在一起,而不必重新发明处理文档的基础设施。制作包并不难。 - Martin Morgan
旨在说,PDF和R文件是在打包构建时创建的,这意味着打包创建者承担了昂贵部分的压力(创建vignette,并需要运行的latex),而使用打包的人只需安装它,无需额外的软件依赖。 - Martin Morgan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接