相关疑难解决方法(0)

函数invisible()有什么作用?

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)
Run Code Online (Sandbox Code Playgroud)

我在想,如果没有invisible(x),我将无法完成如下任务:

a = print(x)
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.所以,我想知道它有什么invisible()作用,它在哪里有用,最后它在上面的方法打印功能中的作用是什么?

非常感谢您的帮助.

r

46
推荐指数
3
解决办法
2万
查看次数

-&gt;(右箭头)和 &lt;-(左箭头)在 for 循环中的不同行为

从 R3.0 开始for循环返回NULL(如文档所述):

x <- for(i in 1:3) {i+1}
x
# NULL
Run Code Online (Sandbox Code Playgroud)

但是,使用右箭头赋值,它似乎返回最后一个值:

for(i in 1:3) {i+1} -> x
x
# [1] 4
Run Code Online (Sandbox Code Playgroud)

文档没有评论->,并且正如 Ben Bolker 所指出的那样->似乎<-无论如何都转换为:

expression(1 -> x)
# expression(x <- 1)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. 这是错误还是误解?
  2. 如果它们应该相同,为什么会-><-这种情况下的行为不同?

language-design r

3
推荐指数
1
解决办法
100
查看次数

标签 统计

r ×2

language-design ×1