मैं एक कमांड (इस मामले में, applyफ़ंक्शन) के आउटपुट को दबाने के लिए देख रहा हूं ।
क्या बिना उपयोग के ऐसा करना संभव है sink()? मैंने नीचे वर्णित समाधान पाया है, लेकिन यदि संभव हो तो एक पंक्ति में ऐसा करना चाहते हैं।
मैं एक कमांड (इस मामले में, applyफ़ंक्शन) के आउटपुट को दबाने के लिए देख रहा हूं ।
क्या बिना उपयोग के ऐसा करना संभव है sink()? मैंने नीचे वर्णित समाधान पाया है, लेकिन यदि संभव हो तो एक पंक्ति में ऐसा करना चाहते हैं।
capture.output। या *_plyप्लाईर पैकेज से उपयोग करें ।
lapplyदिया- यदि आप वास्तव में किसी एप्लिकेशन फंक्शन को अंजाम देने की कोशिश कर रहे हैं, जैसे कि प्रिन्टिंग आउटपुट के बिना, तो उसके plyrपैकेज से 'l_ply` शायद सबसे उपयुक्त विकल्प है।
जवाबों:
यह स्पष्ट नहीं है कि आप ऐसा क्यों करना चाहते हैं sink, लेकिन आप किसी भी कमांड को लपेट सकते हैंinvisible() फ़ंक्शन और यह आउटपुट को दबा देगा। उदाहरण के लिए:
1:10 # prints output
invisible(1:10) # hides it
अन्यथा, आप अर्धविराम और कोष्ठक के साथ हमेशा चीजों को एक पंक्ति में जोड़ सकते हैं:
{ sink("/dev/null"); ....; sink(); }
invisible()केवल एक अभिव्यक्ति के प्रिंट को दबाता है, यह sink()एक-लाइनर नहीं है।
applyप्रश्न के अनुसार वापसी को दबा देता है invisible(apply(matrix(1:10), 1, as.numeric)):।
{ sink("/dev/null"); ....; sink(); }मैं निश्चित रूप से पसंद करूंगा capture.output, जैसा कि capture.outputप्रभावी रूप से ठीक ऊपर है, बस बहुत बेहतर है (स्रोत पर एक नज़र डालें, यह ऊपर के फैशन के रूप में सिंक कहता है, और इसके चारों ओर कुछ अच्छा सामान है)।
idwविंडोज के तहत कार्य पर काम नहीं करता है । मुझे लगता है कि सबसे अच्छा समाधान का उपयोग कर रहा हैsink
capture.output()फ़ंक्शन का उपयोग करें । यह एक-बंद की तरह बहुत काम करता है sink()और इसके विपरीत invisible(), यह सिर्फ प्रिंट संदेशों की तुलना में अधिक दबा सकता है। /dev/nullUNIX NULपर या खिड़कियों पर फ़ाइल तर्क सेट करें । उदाहरण के लिए, डिर्क के नोट पर विचार करना:
> invisible(cat("Hi\n"))
Hi
> capture.output( cat("Hi\n"), file='NUL')
>
capture.output(x <- log(2))और बाद xमें इसका मूल्य है log(2)...
निम्नलिखित फ़ंक्शन को वही करना चाहिए जो आप वास्तव में चाहते हैं:
hush=function(code){
sink("NUL") # use /dev/null in UNIX
tmp = code
sink()
return(tmp)
}
यहाँ समारोह के साथ उदाहरण के लिए:
foo=function(){
print("BAR!")
return(42)
}
चल रहा है
x = hush(foo())
42 से x असाइन करेगा लेकिन "BAR!" प्रिंट नहीं करेगा एसटीडी के बारे में
UNIX OS की तुलना में आपको "NUL" को "/ dev / null" से बदलना होगा
हेडली की टिप्पणी को एक उत्तर के रूप में बनाना (बेहतर दिखाई देने की उम्मीद)। plyrपैकेज के उपयोग के साथ मुद्रण के बिना लागू परिवार का उपयोग संभव है
x <- 1:2
lapply(x, function(x) x + 1)
#> [[1]]
#> [1] 2
#>
#> [[2]]
#> [1] 3
plyr::l_ply(x, function(x) x + 1)
रेप्रेक्स पैकेज द्वारा 2020-05-19 को बनाया गया (v0.3.0)
invisible(cat("Dataset: ", dataset, fill = TRUE))
invisible(cat(" Width: " ,width, fill = TRUE))
invisible(cat(" Bin1: " ,bin1interval, fill = TRUE))
invisible(cat(" Bin2: " ,bin2interval, fill = TRUE))
invisible(cat(" Bin3: " ,bin3interval, fill = TRUE))
NULL के बिना लाइन के अंत में या अगली पंक्ति में आउटपुट का उत्पादन करता है
Dataset: 17 19 26 29 31 32 34 45 47 51 52 59 60 62 63
Width: 15.33333
Bin1: 17 32.33333
Bin2: 32.33333 47.66667
Bin3: 47.66667 63