返回 R 中不可见和可见的输出

JAR*_*ARO 3 r return function

我想返回带有函数的可见和不可见对象的混合。我尝试使用看起来像这样的列表:return(list(inv=invisible(x), vis=y))或者return(list(invisible(inv=x), vis=y))但它不起作用。

我很欣赏任何想法。提前致谢!

csg*_*pie 6

我认为最简单的解决方案就是创建一个 S3 打印方法并向列表中添加一个类标签

create_list = function(a, b) {
  l = list(a=a, b=b)
  class(l) = "mylist"
  l
}
Run Code Online (Sandbox Code Playgroud)

然后创建一个print只打印第二个元素的相应方法:

print.mylist = function(x, ...){
  x = x["b"]
  NextMethod()
}
Run Code Online (Sandbox Code Playgroud)

就是这样:

R> (l = create_list(1:4, 5:10))
$b
[1]  5  6  7  8  9 10

R> str(l)
List of 2
 $ a: int [1:4] 1 2 3 4
 $ b: int [1:6] 5 6 7 8 9 10
 - attr(*, "class")= chr "mylist"
Run Code Online (Sandbox Code Playgroud)