जारी नहीं करता है मुझे पता है कि sink()
फ़ंक्शन का उपयोग आर आउटपुट को फ़ाइल में बदलने के लिए किया जा सकता है, उदा।सिंक फ़ाइल
sink('sink-closing.txt')
cat('Hello world!')
sink()
क्या सभी उत्कृष्ट सिंक बंद करने के लिए कोई आसान आदेश है?
नीचे, मैं अपने प्रश्न पर विस्तार से बताता हूं।
मान लीजिए कि मेरी आर-स्क्रिप्ट एक आर-स्क्रिप्ट में sink()
खोलती है, लेकिन आर-स्क्रिप्ट में कोई त्रुटि होती है जो स्क्रिप्ट से पहले sink()
को बंद कर देता है। मैं त्रुटि को ठीक करने की कोशिश कर, कई बार आर-स्क्रिप्ट चला सकता हूं। अंत में, मैं सभी सिंक बंद करना और कंसोल पर प्रिंट करना चाहता हूं। मैं ऐसा कैसे करूं?
अंत में, कंक्रीटेंस के हित में, मैं जिस समस्या का सामना कर रहा हूं उसे स्पष्ट करने के लिए मैं एक MWE प्रदान करता हूं।
सबसे पहले, मैं एक आर-स्क्रिप्ट sink-closing.R
लिखता हूं जिसमें इसकी कोई त्रुटि है।
sink('sink-closing.txt')
foo <- function() {
cat(sprintf('Hello world! My name is %s\n',
a.variable.that.does.not.exist))
}
foo()
sink()
इसके बाद, मैं आर-स्क्रिप्ट कई बार source
, का कहना है कि गलती से 3 बार के रूप में मैं खोजने के लिए और बग को ठीक करने का प्रयास करें।
> source('~/Dropbox/cookbook/r-cookbook/sink-closing.R')
Error in sprintf("Hello world! My name is %s\n", a.variable.that.does.not.exist) :
object 'a.variable.that.does.not.exist' not found
अब, मान लीजिए कि मैं आर-स्क्रिप्ट डिबगिंग कर रहा हूँ और कंसोल के लिए प्रिंट करना चाहते हैं। मैं पहले सिंक को बंद करने के लिए sink()
कई बार कॉल कर सकता हूं। अगर मैं इसे 3 बार कॉल करता हूं, तो अंत में मैं कंसोल पर पहले के रूप में प्रिंट कर सकता हूं। लेकिन मुझे कैसे पता चलेगा कि मुझे कितने सिंक बंद करने की ज़रूरत है?
क्या आप 'sink.number' का उपयोग कर सकते हैं? – mnel