मैं आर में कुछ काफी गहरी पुनरावर्ती कोड चलाने का प्रयास कर रहा हूं और यह मुझे यह त्रुटि देता है:
त्रुटि: सी स्टैक का उपयोग सीमा के बहुत करीब है
से मेरा आउटपुट CStack_info()है:
Cstack_info()
size current direction eval_depth
67108864 8120 1 2
मेरी मशीन पर बहुत सारी मेमोरी है, मैं सिर्फ यह पता लगाने की कोशिश कर रहा हूं कि मैं आर के लिए CStack कैसे बढ़ा सकता हूं।
संपादित करें: किसी ने एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण के लिए कहा। यहाँ कुछ बुनियादी नमूना कोड है जो समस्या का कारण बनता है। च (1,1) चल रहा है कुछ बार आपको त्रुटि मिलेगी। ध्यान दें कि मैंने पहले ही सेट किया है - max-ppsize = 500000 और विकल्प (भाव = 500000) ताकि यदि आप उन्हें सेट नहीं करते हैं तो आपको उन दो चीजों में से एक के बजाय एक त्रुटि मिल सकती है। जैसा कि आप देख सकते हैं, यहाँ पुनरावृत्ति बहुत गहरी जा सकती है और मुझे नहीं पता है कि इसे लगातार काम करने के लिए कैसे प्राप्त किया जाए। धन्यवाद।
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)
}
options(expressions = somethinglarge)