2011-05-30 9 views
5

मैं आर में LowRankQP() पैकेज के साथ थोड़ा सा खेल रहा हूं, और यहां तक ​​कि verbose=FALSE सेटिंग भी बहुत सारे आउटपुट उत्पन्न करता है (नीचे उदाहरण देखें)।इस आर पैकेज से आउटपुट को चुप कैसे करें?

आउटपुट कोड के संकलित भाग से आ रहे हैं। अंतर्निहित संकलित कोड को संशोधित किए बिना LowRankQP() पर कॉल करने के लिए आर में एक तरीका (एक रैपिंग फ़ंक्शन?) है (यानी स्क्रीन पर कुछ भी प्रिंट न करें) (इस पैकेज से जुड़े ईमेल पते में से कोई भी सक्रिय नहीं है)?

library(LowRankQP) 

Vmat <- matrix(0,6,6) 
diag(Vmat) <- c(1, 1,1,0,0,0) 
dvec <- c(0,-5,0,0,0,0) 
Amat <- matrix(c(-4,-3,0,-1,0,0,2,1,0,0,-1,0,0,-2,1,0,0,-1),6,3) 
bvec <- c(-8,2,0) 
uvec <- c(100,100,100,100,100,100) 

aa<-LowRankQP(Vmat,dvec,t(Amat),bvec,uvec,method="CHOL") 

# LowRankQP CONVERGED IN 15 ITERATIONS 
# 
#  Primal Feasibility = 2.5719308e-16 
#  Dual Feasibility  = 7.1949984e-16 
#  Complementarity Value = 3.3066705e-11 
#  Duality Gap   = 3.3065273e-11 
#  Termination Condition = 9.7802929e-12 

यह बात यह है कि "LowRankQP कन्वर्ज्ड में 15 पुनरावृत्तियों" है कि मैं के साथ ..

उबंटू 11.04 दूर करना चाहते हैं, आर संस्करण 2.12.1 और LowRankQP() 1.0.1 के साथ शुरू होता है।

+1

कृपया एक पुन: उत्पन्न उदाहरण जोड़ें। मेरे द्वारा किए गए कुछ परीक्षणों से मुझे इसमें कोई समस्या नहीं है। –

+2

विंडोज पर पुन: उत्पन्न नहीं है, मुझे कोई आउटपुट नहीं मिलता है। कृपया 1) नवीनतम संस्करण में अपडेट करें, और 2) यदि यह बनी रहती है, तो पैकेज के डेवलपर्स को सूचित करें। यह लिनक्स और विंडोज संस्करणों के बीच कुछ बग/असंगतता की तरह गंध करता है। –

+0

धन्यवाद जेएम (मैं पहले ही आर/पैकेज का नवीनतम संस्करण चलाता हूं इसलिए मैं डेवेल मेल करूंगा)। – user189035

उत्तर

5

सिंक (फ़ाइल = एनयूएलएल) काम नहीं करता है, क्योंकि यह अंतिम सिंक बंद करता है, और कुछ भी नहीं।

सिंक (फ़ाइल = शून्य) चेतावनी संदेश: सिंक में (फ़ाइल = शून्य): दूर करने के लिए कोई सिंक

क्या हालांकि काम करता है:

f = file() 
sink(file=f) ## silence upcoming output using anonymous file connection 
... your code here ... 
sink() ## undo silencing 
close(f) 

अज्ञात फ़ाइल का उपयोग करने से प्लेटफॉर्म-अज्ञेयवादी होने का लाभ होता है, यानी आपको अस्थायी फ़ाइल नाम के साथ आने की आवश्यकता नहीं है।

उदाहरण:

f = file() 
sink(file=f) 
example(glm) 
sink() 
close(f) 

मैं का उपयोग किया है सिंक() को सफलतापूर्वक अन्य कार्यों (जैसे normalmixEM2comp {mixtools}) के लिए।

(संपादित करें: इस पोस्ट का पहला संस्करण एक स्पष्ट फ़ाइल हैंडल का उपयोग नहीं करता था, और इस प्रकार एक चेतावनी दी गई - या यहां तक ​​कि एक त्रुटि भी अगर आप उपर्युक्त स्निपेट को अक्सर पर्याप्त कहते हैं)। यह अब बंद (एफ) का उपयोग करके तय किया गया है।

0

मुझे नहीं लगता कि यह काम करेगा, लेकिन आप invisible() को आजमा सकते हैं। मैं उस फ़ंक्शन को नहीं जानता जिसे आप उपयोग कर रहे हैं और मुझे नहीं पता कि अदृश्य cat() चुप हो सकता है या नहीं। लेकिन आप जा सकते थे।

+0

उम: संकेत के लिए धन्यवाद, लेकिन यह काम नहीं किया – user189035

+3

सभी अदृश्य वास्तव में करता है, मुद्रित होने की अपनी सामग्री के वापसी मूल्य को रोकता है, इसलिए इससे मदद नहीं मिलनी चाहिए। –

2

क्या आप आर फ़ंक्शन sink() से परिचित हैं? इसके सहायता पृष्ठ से:

sink     package:base     R Documentation 

Send R Output to a File 

Description: 

    ‘sink’ diverts R output to a connection. 

    ‘sink.number()’ reports how many diversions are in use. 

    ‘sink.number(type = "message")’ reports the number of the 
    connection currently being used for error messages. 

Usage: 

    sink(file = NULL, append = FALSE, type = c("output", "message"), 
      split = FALSE) 

    sink.number(type = c("output", "message")) 

Arguments: 

    file: a writable connection or a character string naming the file 
      to write to, or ‘NULL’ to stop sink-ing. 

file=NULL तर्क यह है कि आप यहां क्या चाहते हैं।

+0

धन्यवाद डी.ई. क्या आप टर्मिनल विंडो को छपने वाले इन प्रिंट आउट से बचने के लिए किसी भी तरह से जानते हैं-यह बहुत परेशान है? – user189035

+0

'सिंक (फ़ाइल = एनयूएलएल) 'वह करता है: ** सभी ** आउटपुट पूर्ण हो जाता है। –

+0

धन्यवाद डी.ई .: तो मैं इसका उपयोग करने में सक्षम नहीं हूं: ऊपर दिए गए कोड में मुझे सिंक (फ़ाइल = एनयूएलएल) क्यों होना चाहिए ताकि संदेश स्क्रीन में प्रिंट न हो? – user189035

1

ठीक है, मैं इसे tarRankQP.c की 413-> 418 लाइनों पर टिप्पणी करके और .tar.gz (या वैकल्पिक रूप से एक नया विकल्प verbose == 2 जोड़कर) को पुनर्स्थापित करके कर सकता हूं।

संबंधित मुद्दे