打印矢量与"和"在\ Sexpr {}

时间:2018-06-17 19:28:31

标签: r knitr sweave

考虑这个简单的向量:

x <- c(1,2,3,4,5) 

\Sexpr{x}将在LaTeX 1,2,3,4,5中打印,但我经常需要将文本中的某些向量报告为人类,包括&#34;和&#34;在最后一个号码之前。

我自动尝试使用此功能:

x <- c(1,2,3,4,5)
nicevector <- function(x){
    a <- head(x,length(x)-1)
    b <- tail(x,1)
    cat(a,sep=", ");cat(" and ");cat(b)}
nicevector(x)

这似乎在控制台\Sexpr{nicevector(x)}中起作用,但在.Rnw文件中失败了(而\ Sexpr {x}起作用)。一些想法?

2 个答案:

答案 0 :(得分:2)

您可以使用knitr::combine_words(x)

使用cat()仅用于其副作用:在控制台中打印。 cat()不会返回字符串,因此您不会在输出中看到任何内容。相比之下,knitr::combine_words()返回一个字符串。

答案 1 :(得分:2)

glue包中还有一个函数

glue::glue_collapse(1:4, ",", last = " and ")
#> 1, 2, 3 and 4

请参阅help of function