2017-01-02 84 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

無極是通常包含來自包加載的數據的對象。只要您使用它,它就會變成一個數據框。從裝載它到你使用它時,它是一個承諾對象。