在R函数中,在return()语句后打印(一些文本)

时间:2015-12-17 14:24:20

标签: r function text return

f <- function(x){
  print(paste0("x is: ",x))
  return(mean(rnorm(x))) #return() not neccessary
}

然后,

set.seed(8)
f(5)

输出:

[1] "x is: 5"
[1] 0.09550734

如何在函数结果后显示print语句,因此输出为:

[1] 0.09550734
[1] "x is: 5"

这可以在同一个函数中完成而不将文本作为return参数的一部分放置吗?

2 个答案:

答案 0 :(得分:3)

将功能更改为隐身返回,并使用print按您想要的顺序显示内容:

f <- function(x) {
  out <- mean(rnorm(x))
  print(out)
  print(paste("x is:", x))
  invisible(out)
}

答案 1 :(得分:1)

f <- function(x, print = TRUE){
# return(mean(rnorm(x))) #return() not neccessary
a <- mean(rnorm(x))
b <- paste(" x is:", x)
if isTRUE(print) {
    return(cat(c(a, b), sep = "\n"))
    }
return(x)
}