R help将invisible()解释为"一个返回暂时不可见的对象副本的函数".我很难理解invisible()的用途.你能解释一下invisible()的功能吗?这个功能什么时候有用?

我看到print()的方法函数中几乎总是使用invisible().以下是一个例子:

### 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开始:

细节:

 This function can be useful when it is desired to have functions
 return values which can be assigned, but which do not print when
 they are not assigned.

因此,您可以指定结果,但如果未指定,则不会打印结果.它经常用来代替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相关问答推荐

即使声明引发错误,R函数也会在第二次try 时返回结果

在特定列上滞后n行,同时扩展框架的长度

从嵌套列表中智能提取线性模型系数

R Markdown中的交叉引用表

判断字符串中数字的连续性

基于不同组的列的相关性

在不安装软件包的情况下测试更新

使用ggsankey调整Sankey图中单个 node 上的标签

在R中,如何将变量(A,B和C)拟合在同一列中,如A和B,以及A和C在同一面板中?

Ggplot2中的重复注记

找出二叉树中每个 node 在R中的深度?

为什么我使用geom_density的绘图不能到达x轴?

过滤名称以特定字符串开头的文件

如何在PDF格式的kableExtra表格中显示管道字符?

删除数据帧中特定行号之间的每第三行和第四行

如何计算每12行的平均数?

R中时间间隔的大向量与参考时间间隔的相交

R-使用stri_trans_General()将其音译为德语字母

隐藏基于 case 总数的值

通过比较来自多个数据框的值和R中的条件来添加新列