और y = FALSE
पर अपने ब्राउज़र में यदि दर्शक (रेस्ट्यूडियो) दर्शक में कुछ खोल देगा तो विचार करें। options(viewer = NULL)
(और फिर आपको पहले रीसेट करने की आवश्यकता है) के माध्यम से अपने ब्राउज़र में खोलने के लिए whatever
को मजबूर कर सकते हैं, लेकिन मैं इसे सामान्य on.exit
दृष्टिकोण का उपयोग करके कार्यों के अंदर काम करने के लिए नहीं मिल सकता। विंडोज़ और ओएसएक्स पर परीक्षण किया।दर्शक के बजाय ब्राउज़र का उपयोग करने के लिए बल rstudio
f <- function(x, y = TRUE) {
if (y) {
oo <- getOption('viewer')
on.exit(options(viewer = oo))
options(viewer = NULL)
} else options(viewer = NULL)
print(getOption('viewer'))
DT::datatable(x)
}
g <- function(x, y = TRUE) {
if (y) {
oo <- getOption('viewer')
on.exit(options(viewer = oo))
options(viewer = NULL)
} else options(viewer = NULL)
print(getOption('viewer'))
htmlTable::htmlTable(x)
}
## in rstudio, returns the viewer function
getOption('viewer')
# function (url, height = NULL)
# ...
## opens in viewer despite `options(viewer = NULL)`
g(mtcars)
# NULL
## again returns the function, ie, reset my options to before g call successfully
getOption('viewer')
# function (url, height = NULL)
# ...
## opens in browser but leaves `options(viewer = NULL)` after exiting
g(mtcars, FALSE)
# NULL
getOption('viewer')
# NULL
ऐसा लगता है कि दर्शक या तो बस कुछ html (g
) या एक विजेट (f
) के साथ समारोह पर्यावरण के भीतर मेरे विकल्प का सम्मान नहीं है। मैंने सोचा कि दोनों फ़ंक्शन के अंदर viewer = NULL
का उपयोग करेंगे और मेरे विकल्पों को बाहर निकलने के तरीके को वापस कर देंगे ताकि मैं नियंत्रित कर सकूं कि मैं परिणाम कहां देखना चाहता हूं।
या एचटीएमएल और विजेट दोनों के लिए ऐसा करने का एक बेहतर तरीका है? मैंने में options
तर्क का कोई फायदा नहीं लिया है, लेकिन इससे htmlTable::htmlTable
मामले में मदद नहीं मिलेगी।
एकमात्र अन्य दृष्टिकोण जो मैं सोच सकता हूं वह सभी कोड को एक temp फ़ाइल में लिखना है और if (rstudio) rstudio::viewer(tempfile) else browseURL(tempfile)
का उपयोग करना है जो मुझे लगता है कि कुछ ऐसा लगता है जो सीधे आगे बढ़ता है।
अतिरिक्त अंक अगर किसी को मेरी संपादन इतिहास को देखो और मुझे बताओ कि diff जानता है कि मैं दो अलग अलग तरीकों – rawr
मैं Ushey करने के लिए "चमगादड़ सिग्नल" भेजा में एक ही अक्षर के नष्ट कर दिया जा सकता है। उम्मीद है कि वह सिएटल में बादलों को देख रहा है। – hrbrmstr