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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤:C堆棧使用率太接近極限

錯誤:C堆棧使用率太接近極限

慕絲7291255 2019-08-19 14:16:13
錯誤:C堆棧使用率太接近極限我試圖在R中運行一些相當深的遞歸代碼,它不斷給我這個錯誤:錯誤:C堆棧使用率太接近極限我的輸出CStack_info()是:Cstack_info()     size    current  direction eval_depth  67108864       8120          1          2我的機器上有足夠的內(nèi)存,我只想弄清楚如何增加R的CStack。編輯:有人要求一個可重復的例子。這是導致問題的一些基本示例代碼。運行f(1,1)幾次就會出現(xiàn)錯誤。請注意,我已經(jīng)設置了--max-ppsize = 500000和options(表達式= 500000),所以如果你沒有設置它們,你可能會得到關(guān)于這兩件事之一的錯誤。正如你所看到的,遞歸可以在這里非常深入,我不知道如何讓它一致地工作。謝謝。f <- function(root=1,lambda=1) {     x <- c(0,1);     prob <- c(1/(lambda+1),lambda/(lambda+1));         repeat {       if(root == 0) {         break;       }       else {         child <- sample(x,2,replace=TRUE,prob);         if(child[1] == 0 && child[2] == 0) {           break;         }         if(child[1] == 1) {           child[1] <- f(root=child[1],lambda);         }         if(child[2] == 1 && child[1] == 0) {           child[2] <- f(root=child[2],lambda);         }       }       if(child[1] == 0 && child[2] == 0) {         break;       }       if(child[1] == 1 || child[2] == 1) {         root <- sample(x,1,replace=TRUE,prob);       }         }     return(root)}
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經(jīng)驗 獲得超3個贊

堆棧大小是一個操作系統(tǒng)參數(shù),可按進程調(diào)整(請參閱參考資料setrlimit(2))。據(jù)我所知,您無法在R內(nèi)調(diào)整它,但您可以在啟動R之前使用ulimit命令從shell調(diào)整它。它的工作原理如下:

$ ulimit -s # print default8192$ R --slave -e 'Cstack_info()["size"]'
   size 
8388608

8388608 = 1024 * 8192; R打印的值相同ulimit -s,但以字節(jié)為單位而不是千字節(jié)。

$ ulimit -s 16384 # enlarge stack limit to 16 megs$ R --slave -e 'Cstack_info()["size"]'
    size 
16777216

要對此設置進行永久性調(diào)整,請將ulimit命令添加到shell啟動文件中,以便每次登錄時都執(zhí)行該命令。我無法給出更具體的指示,因為它取決于您擁有的shell和內(nèi)容。我也不知道如何登錄圖形環(huán)境(如果你沒有在終端窗口中運行R,這將是相關(guān)的)。


查看完整回答
反對 回復 2019-08-19
?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

我懷疑,無論堆棧限制如何,你最終都會得到太深的遞歸。例如,使用lambda = Inf,f(1)會無限期地導致立即遞歸。遞歸的深度似乎是隨機游走,有一些概率r更深,1-r完成當前遞歸。當你達到堆棧限制時,你已經(jīng)做了很多“更深層次”的步驟。這意味著r> 1/2,并且絕大多數(shù)時間你只會繼續(xù)遞歸。

而且,即使在無限遞歸的情況下,似乎幾乎可以推導出解析或至少數(shù)值解??梢詫定義為f(1)== 1的概率,在單次迭代后寫入“子”狀態(tài)的隱式表達式,并將它們與p等同,并求解。然后,p可以用作從二項分布中單次繪制成功的機會。


查看完整回答
反對 回復 2019-08-19
?
開心每一天1111

TA貢獻1836條經(jīng)驗 獲得超13個贊

這種情況發(fā)生在我身上的原因完全不同。我在組合兩列時偶然創(chuàng)建了一個超長字符串:

output_table_subset = mutate(big_data_frame,
     combined_table = paste0(first_part, second_part, col = "_"))

代替

output_table_subset = mutate(big_data_frame,
     combined_table = paste0(first_part, second_part, sep = "_"))

讓我永遠想弄清楚,因為我從來沒有想到粘貼會導致問題。


查看完整回答
反對 回復 2019-08-19
  • 3 回答
  • 0 關(guān)注
  • 1531 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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