2012-02-10 13 views
21

मैं निम्नलिखित समारोह बनाया:एक भी वेक्टर में एक समारोह के लिए तर्क गुजर

nDone<- function (under,strike,ttoe,vol,rf,dy) pnorm(((log(under/strike)+ 
    (rf-dy+(vol^2)/2)*ttoe)/(vol*(ttoe^0.5)))) 

तो मैं निम्नलिखित के साथ फ़ंक्शन को कॉल करें:

nDone(90,100,3,0.17,0.05,0) 

परिणाम

[1] 0.6174643 

ठीक है अब तक सभी अच्छे थे।

अब मैं एक वस्तु में एक ही मूल्यों के साथ एक वेक्टर बनाएँ:

d<- c(90,100,3,0.17,0.05,0) 

और मैं वस्तु का उपयोग कर समारोह कॉल करने के लिए प्रयास करें।

nDone(d) 

और मुझे निम्न त्रुटि मिलती है।

Error in under/strike : 'strike' is missing 

मैं क्या गलत कर रहा हूं और कैसे ठीक कर सकता हूं?

धन्यवाद

RSG

+0

मैं शीर्षक समायोजित कुछ बेहतर अंतर्निहित मुद्दे को प्रतिबिंबित करने के लिए प्रयास करें। यदि आप असहमत हैं तो रोलबैक के लिए स्वतंत्र महसूस करें। मैं एक जवाब लिखूंगा, जब तक कि कोई मुझे इसके लिए धड़कता न हो। – joran

+2

'? Do.call' आपको वहां मिलेगा – baptiste

+0

धन्यवाद, हाँ यह एक बेहतर शीर्षक है। – user1181337

उत्तर

28

इस

do.call(nDone, as.list(d)) 
+1

और यहां मैं एक लंबा स्पष्टीकरण टाइप कर रहा था! ;) जो मैं इस कोड में जोड़ने जा रहा था, वह कुछ हद तक था: आर देख रहा है कि आप 'nDone', अर्थात् वेक्टर' डी 'के लिए एक भी तर्क पारित करते हैं, जिसे पहले फंक्शन तर्क,' अंडर 'को सौंप दिया जाता है। चूंकि आपने दूसरों के लिए डिफ़ॉल्ट मान निर्दिष्ट नहीं किया है, इसलिए वे गायब हैं और इसलिए त्रुटि। – joran

+0

क्षमा करें - अनुमान लगाएं कि मेरी उत्तर शैली को आर-सहायता के साथ अपरिवर्तनीय रूप से खराब कर दिया गया है। – baptiste

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