3

我正在尝试将 R 数据框中的行名分组,以便使用 Hmisclatex()函数进行排版。问题是latex()在每行名称之前添加了两个波浪字符,这些字符出现在我的文档中。

如何删除这些字符或不显示它们?

例子:

test.df <- data.frame(row.names=letters[1:4],   col1=1:4, col2=4:1, col3=4:7)
latex(test.df, file="", n.rgroup=c(2,2), rgroup=c("First","Second"))

编辑:乳胶功能发生在 knitr 块内。生成的 .Rnw 文件是通过 knit2pdf 函数编译的,我认为该函数默认使用 pdfLatex。文档中的所有其他表格/图形都可以正常编译,不会出现任何残留的 LaTex 语法。

4

2 回答 2

2

latex如果您使用TeX 处理器,它们将不会显示:

test.df <- data.frame(row.names=letters[1:4],   col1=1:4, col2=4:1, col3=4:7)
latex(test.df, file="test", n.rgroup=c(2,2), rgroup=c("First","Second"))

在此处输入图像描述

如果您想“捕获”“打印”到屏幕上的文本并删除双波浪线,sub那么您可能需要使用capture.output,因为它似乎latex没有返回值,而是更像cat具有输出的函数屏幕作为副作用:

out <- sub("^~~", "", capture.output( 
                     latex(test.df, file="", 
                         n.rgroup=c(2,2), rgroup=c("First","Second")))) 

然后,您可以使用带有文件参数的 writeLines 或 cat 将该文本发送到目的地。我想您可以将sub调用内联而不将结果转移到命名对象。这将取决于您如何处理此文本。

于 2013-07-25T21:26:22.080 回答
1

如果您不想使用 LaTeX,那么我建议您使用具有非常高级选项的ascii 包,这些选项可以提供很好的原始文本输出(它还具有 rgroup 和 n.rgroup 用于对行名称进行分组的选项)。如果您有兴趣将表格转换为 Word 文档(或只是 HTML),我建议使用我的htmlTable 函数进行 Markdown - 参数基于 Hmisc 乳胶参数,因为我在切换到 Markdown 时需要替换,因此您只需要要做的是在加载我的包后将函数名称更改为 htmlTable。

于 2013-07-26T06:11:25.943 回答