2016-12-17 11 views
5

में htmlTable पैकेज में मैं base::interactive का उपयोग कर रहा हूं ताकि यह निर्धारित किया जा सके कि आउटपुट को स्ट्रिंग या ब्राउज़र विंडो में आउटपुट किया जाना चाहिए (यहां code है)। दुर्भाग्यवश interactive()TRUERStudio notebook के भीतर चलते समय, नोटबुक के भीतर निष्पादन वातावरण को निर्धारित करने का समतुल्य तरीका क्या है?निर्धारित करें कि स्क्रिप्ट एक RStudio नोटबुक

मैंने ls() और search() को आजमाया है लेकिन वे पर्यावरण की परवाह किए बिना समान दिखते हैं। मेरे पास knit_print.htmlTable एस 3 फ़ंक्शन भी है जिसे default for knitr दस्तावेज़ों द्वारा बुलाया जाता है लेकिन यह नोटबुक वातावरण में इसे ठीक से नहीं लग रहा है।

prIsNotebook <- function() { 
    if (!rstudioapi::isAvailable()) { 
    return(FALSE) 
    } 

    ctxt <- rstudioapi::getActiveDocumentContext() 
    if (grepl("\\.Rmd$", ctxt$path)) { 
    return(TRUE) 
    } 

    # Look for html_notebook within the header if the file hasn't been saved 
    contents <- ctxt$contents 
    header <- grep("^---$", contents) 
    if (length(header) == 2) { 
    return(any(grepl("html_notebook$", 
        contents[min(header) : max(header)]))) 
    } 

    return(FALSE) 
} 

मैं एक की तुलना में एक हैक के इस अधिक के बाद से जवाब के रूप में यह जांच नहीं करेगा:

+0

देखें कि क्या परीक्षण 'knitr :: opts_current $ get (' results ') '' NULL' नहीं है। यह एक नोटबुक या आर मार्कडाउन संदर्भ में सेट है लेकिन एक सादे स्क्रिप्ट संदर्भ में नहीं (कम से कम मेरे सिस्टम पर)। – hrbrmstr

+0

@hrbrmstr धन्यवाद, दुर्भाग्यवश यह सिर्फ एक हिस्सा चलते समय काम नहीं कर रहा है। आदर्श रूप में मैं RStudio से पैकेज रखरखाव के लिए कुछ आधिकारिक चाहता हूं लेकिन मैं कुछ और उपयोगी नहीं ढूंढ पाया। –

+0

एचआरएम। मैंने इसे सिर्फ एक हिस्से में भाग लिया और यह मेरे लिए ठीक काम किया। – hrbrmstr

उत्तर

0

तो सबसे अच्छा समाधान है कि मैं अब तक मिल गया है RStudio एपीआई का उपयोग कर एक संदर्भ डिटेक्टर को लागू करने की है सही समाधान

+0

मेरे पास आरएनोटबुक हैं जिन्हें मैं कभी-कभी वर्ड या पीडीएफ के लिए भी बुनाता हूं, और कभी-कभी एचटीएमएल - इसलिए मेरे पास इन सभी को मेरे वाईएएमएल हेडर सेक्शन में आउटपुट प्रारूप के रूप में भी शामिल किया गया है :-( – dsz

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