我想用一个函数返回可见和不可见对象的混合。我尝试使用如下列表:return(list(inv=invisible(x), vis=y))
或 return(list(invisible(inv=x), vis=y ))
但它没有用。
我很欣赏任何想法。提前致谢!
最佳答案
我认为最简单的解决方案就是创建一个 S3 打印方法并向列表中添加一个类标签
create_list = function(a, b) {
l = list(a=a, b=b)
class(l) = "mylist"
l
}
然后创建一个对应的print
方法,只打印出第二个元素:
print.mylist = function(x, ...){
x = x["b"]
NextMethod()
}
就是这样:
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"
关于在 R 中返回不可见和可见的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28738626/