第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在R中使用“<-”(范圍分配)?

如何在R中使用“<-”(范圍分配)?

有只小跳蛙 2019-07-27 15:15:04
如何在R中使用“<-”(范圍分配)?我剛讀完R簡(jiǎn)介中的范圍界定,我很好奇<<-任務(wù)。手冊(cè)給出了一個(gè)(非常有趣)的例子<<-我覺(jué)得我能理解。我仍然缺少的是什么情況下這可能是有用的。因此,我想從您這里讀到的是示例(或指向示例的鏈接)。<<-可能是有趣的/有用的。使用它的危險(xiǎn)是什么(看起來(lái)很容易失控),以及任何您可能想分享的提示。
查看完整描述

3 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

<<-與閉包一起維護(hù)狀態(tài)最有用。以下是我最近的一篇論文中的一節(jié):

閉包是由另一個(gè)函數(shù)編寫(xiě)的函數(shù)。閉包之所以被稱(chēng)為閉包,是因?yàn)樗鼈?/trans>圍封父函數(shù)的環(huán)境,并可以訪(fǎng)問(wèn)該函數(shù)中的所有變量和參數(shù)。這很有用,因?yàn)樗试S我們有兩個(gè)級(jí)別的參數(shù)。一個(gè)級(jí)別的參數(shù)(父級(jí))控制函數(shù)的工作方式。另一層(孩子)做這項(xiàng)工作。下面的示例演示如何使用此思想生成一系列冪函數(shù)。父函數(shù)(power)創(chuàng)建子函數(shù)(squarecube)這實(shí)際上是一項(xiàng)艱苦的工作。

power <- function(exponent) {
  function(x) x ^ exponent}square <- power(2)square(2) # -> [1] 4square(4) # -> [1] 16cube <- power(3)cube(2) # -> [1] 8cube(4) # -> [1] 64

在兩個(gè)級(jí)別管理變量的能力還使得通過(guò)允許函數(shù)修改父函數(shù)環(huán)境中的變量來(lái)維護(hù)跨函數(shù)調(diào)用的狀態(tài)成為可能。在不同級(jí)別管理變量的關(guān)鍵是雙箭頭賦值操作符。<<-..與通常的單一箭頭分配不同(<-)如果始終在當(dāng)前級(jí)別上工作,則雙箭頭運(yùn)算符可以修改父級(jí)別中的變量。

這樣就可以維護(hù)一個(gè)計(jì)數(shù)器來(lái)記錄函數(shù)被調(diào)用的次數(shù),如下例所示。每次new_counter,則創(chuàng)建一個(gè)環(huán)境,初始化計(jì)數(shù)器。i在這個(gè)環(huán)境中,然后創(chuàng)建一個(gè)新函數(shù)。

new_counter <- function() {
  i <- 0
  function() {
    # do something useful, then ...
    i <<- i + 1
    i  }}

新函數(shù)是封閉的,它的環(huán)境是封閉的環(huán)境。當(dāng)關(guān)閉時(shí)counter_onecounter_two運(yùn)行時(shí),每個(gè)計(jì)數(shù)器都會(huì)在其包圍的環(huán)境中修改計(jì)數(shù)器,然后返回當(dāng)前計(jì)數(shù)。

counter_one <- new_counter()counter_two <- new_counter()counter_one() # -> [1] 1counter_one() # -> [1] 2counter_two() # -> [1] 1



查看完整回答
反對(duì) 回復(fù) 2019-07-28
?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊

它有助于思考<<-相當(dāng)于assign(如果設(shè)置inherits函數(shù)中的TRUE)。.的利益assign它允許您指定更多的參數(shù)(例如環(huán)境),所以我更喜歡使用assign過(guò)關(guān)<<-在大多數(shù)情況下。

使用<<-assign(x, value, inherits=TRUE)意味著“搜索所提供環(huán)境的封閉環(huán)境,直到遇到變量‘x’。”換句話(huà)說(shuō),它將繼續(xù)按順序遍歷環(huán)境,直到找到一個(gè)具有該名稱(chēng)的變量,并將其賦值給該變量。這可以在函數(shù)的范圍內(nèi),也可以在全局環(huán)境中。

為了了解這些函數(shù)的作用,您還需要了解R環(huán)境(例如,使用search).

在運(yùn)行大型模擬時(shí),我經(jīng)常使用這些函數(shù),并且希望保存中間結(jié)果。這允許您在給定函數(shù)的作用域之外創(chuàng)建對(duì)象,或者apply循環(huán)。這是非常有幫助的,特別是如果您對(duì)大循環(huán)意外結(jié)束(例如數(shù)據(jù)庫(kù)斷開(kāi))有任何擔(dān)心,在這種情況下,您可能會(huì)丟失整個(gè)過(guò)程中的所有內(nèi)容。這相當(dāng)于在長(zhǎng)時(shí)間運(yùn)行的過(guò)程中將結(jié)果寫(xiě)入數(shù)據(jù)庫(kù)或文件,而不是將結(jié)果存儲(chǔ)在R環(huán)境中。

我對(duì)此的主要警告是:要小心,因?yàn)槟F(xiàn)在正在處理全局變量,特別是在使用<<-..這意味著,當(dāng)您期望函數(shù)使用作為參數(shù)提供的對(duì)象值時(shí),您可能會(huì)遇到這樣的情況:函數(shù)正在使用來(lái)自環(huán)境的對(duì)象值。這是函數(shù)式編程試圖避免的主要問(wèn)題之一(請(qǐng)參閱副作用)。我通過(guò)將值賦值給函數(shù)中從未使用過(guò)的唯一變量名(使用帶有集合或唯一參數(shù)的粘貼)來(lái)避免這個(gè)問(wèn)題,但只用于緩存,以防以后需要恢復(fù)(或?qū)χ虚g結(jié)果進(jìn)行一些元分析)。




查看完整回答
反對(duì) 回復(fù) 2019-07-28
  • 3 回答
  • 0 關(guān)注
  • 671 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)