2015-02-04 5 views
5

में Rprintf से suppressMessages मैं कुछ सी ++ कोड लंबी गणनाओं के साथ एक आर-पैकेज लिख रहा हूं। सी ++ कोड के अंदर, मैं आउटपुट जानकारी के लिए Rprintf() का उपयोग कर रहा हूं। मैंने suppressMessages() के साथ आर से आउटपुट दबाने की कोशिश की, लेकिन यह काम नहीं करता है, संदेश अभी भी आर सत्र के अंदर दिखाई देते हैं।आर: सी ++

मुझे कुछ समान प्रश्न मिले, जहां लोग Rprintf के बजाय printf का उपयोग कर रहे थे, लेकिन मैं पहले से ही Rprintf का उपयोग कर रहा हूं। मैंने R_ShowMessage() को भी आजमाया, जिसे तुरंत प्रदर्शित किया जाता है और suppressMessages() द्वारा दबाया नहीं जाता है।

#include <R.h> 
extern "C" { 
void R_testprint() 
{ 
    Rprintf("Try to suppress me!\n"); 
    R_ShowMessage("Try to suppress me, too!"); 
} 
} 

और समारोह है कि इस कोड को कॉल:

test.print <- function(string) { 
    res <- .C("R_testprint") 
} 

अब, निम्नलिखित आर कोड उत्पादन को दबाने नहीं होगा:

> suppressMessages(test.print()) 
Try to suppress me! 
Try to suppress me, too! 

यहां कुछ उदाहरण सी ++ कोड है

मैं आर संस्करण 3.1.0

का उपयोग कर रहा हूँ

मैं किसी भी मदद की सराहना करता हूं! suppressMessages के स्थान पर

+0

क्या आपको हमें सी ++ कोड चाहिए? –

+0

मैंने एक उदाहरण जोड़ा। – chakalakka

उत्तर

1

उपयोग capture.output:

b <- capture.output(test.print()) 

फिर उत्पादन चरित्र वेक्टर b बजाय में संग्रहित है मुद्रित किया जा रहा।

+0

मैं suppressMessages का उपयोग करना चाहता हूं, क्योंकि इस कोड का कोई भी उपयोगकर्ता ऐसा करेगा। कोड एक आर-पैकेज का हिस्सा है और इस प्रकार कोई भी उपयोगकर्ता आउटपुट दबाने के लिए suppressMessages का उपयोग करेगा। – chakalakka