2010-04-30 29 views
7

उत्पन्न करता है क्या यह निर्धारित करने का कोई तरीका है कि कोई फ़ंक्शन R में कोई आकृति उत्पन्न करता है या नहीं?मैं कैसे निर्धारित कर सकता हूं कि कोई फ़ंक्शन ग्राफ़

उदाहरण के लिए

, अगर हम कार्यों और जी

f = function(x,y){plot(x,y)} 
g = function(x,y){mean(x*y)} 

मैं

createFigure(f(x,y))#Returns TRUE 
createFigure(g(x,y))#Returns FALSE 

धन्यवाद

+0

बीटीडब्लू कॉलिन, मैं उत्सुक हूं कि इस तरह का एक कार्य कैसे उपयोगी हो सकता है? बेस्ट, टैल –

+0

छात्र कुछ कार्य coursework के रूप में जमा करते हैं। उनके कार्यों में से एक ग्राफ उत्पन्न करना चाहिए। मैं फिर अपने coursework चलाने और शुद्धता की जांच करने के लिए स्वीवे का उपयोग करें। हालांकि, अगर फ़ंक्शन गलत है और कोई ग्राफिक्स नहीं बनाता है तो मैं परिणामी टीएक्स फ़ाइल को संकलित नहीं कर सकता। – csgillespie

+2

आईएमएचओ, यह एसओ के आर अनुभाग पर सबसे निचला प्रश्न है। पूछने के लिए धन्यवाद, और @ हैडली, दिन बचाने के लिए धन्यवाद! =) – aL3xa

उत्तर

20
makes_plot <- function(x) { 
    before <- .Internal(getSnapshot()) 
    force(x) 
    after <- .Internal(getSnapshot()) 
    !identical(before, after) 
} 

makes_plot(mean(1:10)) 
makes_plot(plot(1:10)) 

.getSnapshot समारोह recordPlot() के स्रोत को देखकर पता चला था।

+3

बहुत अच्छी तरह से किया! –

+0

+1 शायद इसे ggplot2 में शामिल करें ताकि यह आसानी से उपलब्ध हो सके? – Shane

+1

अच्छा! (न्यूनतम (लंबाई (टिप्पणी)) – Dan

0

हैं चलाने के लिए, अपने उद्देश्यों के लिए सक्षम करना चाहते हैं, यह है हाथ से पहले सभी उपकरणों को बंद करने के लिए ठीक है तो जांच कर रहे हैं। शुल्क ठीक होंगे क्योंकि कमांड प्लॉट करना होगा एक नया डिवाइस बनाओ। लेकिन फिर लाइनें(), और अंक() अपवाद होंगे।

असल में, यह सुझाव देता है कि प्रश्न का सिर्फ सही या गलत जवाब नहीं है बल्कि शर्तों पर निर्भर करता है। कुछ फ़ंक्शंस कुछ भी खींचेगा, भले ही कोई खुली डिवाइस न हो, जबकि कुछ और खींचा जाए तो अन्य कुछ खींचेगा। आप उस मामले में क्या करना चाहते हैं?

+0

मेरे पास एक स्वीवे दस्तावेज़ है जो फ़ंक्शन को कॉल करता है। यदि कोई ग्राफ बनाया गया है तो मैं इसे टेक्स फ़ाइल में शामिल करता हूं। कार्य छात्रों से आते हैं। – csgillespie

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

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