我正在使用嵌入式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 <-
部分)?此外,这是一种思想,有没有办法设置字符的最大宽度?
答案 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)
## }