2017-01-02 134 views
0

任何人都可以给我一个在R的承诺对象的解释吗?我对R仍然很陌生,所以先谢谢你保持简单(如果可能的话)。什么是R中的承诺对象?

我无法在网上找到简短的描述和文献。

+2

https://cran.r-project.org/doc/manuals/r-release/R-lang.html#Promise-objects – nrussell

+0

http://adv-r.had.co.nz/Computing-on -the-language.html#capturing-expressions – nrussell

+1

如果你不知道它是什么,你在哪个上下文中看到使用的术语?在R-devel邮件列表之外,你很少看到人们在讨论承诺。 – Roland

回答

1

Promise对象用于包内,使用户可以使用对象,而无需将它们加载到内存中。不幸的是,不可能确定某个对象是否为承诺对象,也不可能确定它创建的环境。 例如:您可以创建一个承诺对象,以便延迟对变量的评估,直到它(第一个)需要为止。你可以使用delayedAssign函数。

> x <- 1 
> y <- 2 
> z <- 3 
> delayedAssign("v", c(x, y, z)) 
> x <- 5 
> v 
[1] 5 2 3 

参考:http://130.132.212.207/mediawiki/images/0/09/R_in_a_Nutshell.pdf

+0

pryr包中的'is_promise'可以报告一个对象是否为承诺而不强制它。另请参阅相同包中的'promise_info'。 –

+0

非常感谢Sachin的快速回答! – user7364919

-1

无极是通常包含来自包加载的数据的对象。只要您使用它,它就会变成一个数据框。从装载它到你使用它时,它是一个承诺对象。