我使用knitr直接从R输出中获取LaTeX拉数,例如,使用\Sexpr{res$a[1]}
到\Sexpr{res$a[5]}
。有没有办法在带正号的正数之前自动添加?当然,我可以手动为相关数字添加加号,但这似乎打败了knitr的目的。
答案 0 :(得分:3)
很抱歉我花了一段时间才回到这里。事实证明这比我想象的要容易。 knitr
似乎没有自己的选项来控制打印选项。相反,它依赖于R会话中的选项。
现在考虑以下事项:
x <- 5.1234567899876543
x
[1] 5.123457
options()$digits
[1] 7
因此,数字打印到控制台的方式(部分)由options("digits")
决定。现在,看看当我们将format
函数应用于x
并使用所有默认参数时会发生什么:
format(x)
[1] "5.123457"
当我们简单地打印x
时,我们得到一个与表示匹配的字符串。让我们利用这一点来实现我们的利益:
with_plus <- function(x, ...)
{
if (x > 0)
{
sprintf(
fmt = "+ %s",
format(x, ...)
)
}
else
{
x
}
}
with_plus(x)
[1] "+ 5.123457"
现在你有一个功能,在默认设置下,它将以与它们在控制台中出现的方式相同的方式打印数字,但使用&#34; +&#34;前面是正数。使用format
,您还可以根据需要灵活调整各个值。