R帮助将invisible()解释为“返回对象的临时不可见副本的函数”。我很难理解invisible()的用途。您能否解释invisible()的功能以及何时可以使用此功能?

我已经看到invisible()几乎总是在print()的方法函数中使用。这是一个例子:

### My Method function:
print.myPrint <- function(x, ...){
  print(unlist(x[1:2]))
  invisible(x)
}

x = list(v1 = c(1:5), v2 = c(-1:-5) )
class(x) = "myPrint"
print(x)

我在想,如果没有invisible(x),我将无法执行以下任务:
a = print(x)

但实际上并非如此。
因此,我想知道invisible()的作用,在哪里有用,最后在上面的方法print函数中它的作用是什么?

非常感谢您的帮助。

最佳答案

?invisible:



因此,您可以分配结果,但是如果未分配,则不会打印。通常用于代替return。您的print.myPrint方法仅打印,因为您显式调用了print。在函数末尾对invisible(x)的调用仅返回x的副本。

如果您不使用invisible,则如果未分配x也会被打印。例如:

R> print.myPrint <- function(x, ...){
+   print(unlist(x[1:2]))
+   return(x)
+ }
R> print(x)
v11 v12 v13 v14 v15 v21 v22 v23 v24 v25
  1   2   3   4   5  -1  -2  -3  -4  -5
v11 v12 v13 v14 v15 v21 v22 v23 v24 v25
  1   2   3   4   5  -1  -2  -3  -4  -5

关于r - 函数invisible()有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11653127/

10-10 16:01