漂亮的印刷R功能

时间:2014-12-26 23:16:39

标签: r latex sweave

我正在使用嵌入式R代码处理一些文本。我正在使用Sweave生成PDF文档。我想打印写入我的PDF的函数,但是print(f)其中 f 是一个任意函数,它消除了一些关键方面,比如函数名。例如:

f <- function(x, y = 2) {
  return(x^y)
}

print(f)

得出这个:

> source('~/.active-rstudio-document')
function(x, y = 2) {
  return(x^y)
}

是否有某些版本的print或类似的函数可以打印我可以剪切并直接粘贴回R的内容,保留函数声明(f <-部分)?此外,这是一种思想,有没有办法设置字符的最大宽度?

1 个答案:

答案 0 :(得分:5)

可能有更好的方法,但这样的方法可行:

f <- function(x, y = 2) {
  return(x^y)
}

pretty <- function(fun){
    captured <- capture.output(fun)
    captured[1] <- paste(as.character(substitute(fun)), "<-", captured[1])

    cat(paste(captured, collapse="\n"))
}

pretty(f)

## f <- function(x, y = 2) {
##   return(x^y)
## }