मैं पार्टी के लिए थोड़ा देर हो चुकी हूं, लेकिन मैं ऐसा करने के कुछ और तरीकों को पोस्ट करने का विरोध नहीं कर सका। असली लाइन पर अंतराल के साथ काम करने के लिए दोनों आर क्षमताओं का लाभ उठाते हैं।
आप वैक्टर cuts
और vals
इसलिए की तरह में अपने कटौती अंक और समारोह मान निर्धारित हैं:
cuts <- c(-Inf, -1.793, -1.304, -0.326, 0.625, 1.630, 2.119)
vals <- c( 0, 0.454, 0, 0.632, 0, 0.227, 0)
तो फिर तुम कुशलता से अपने cutpoints में x
के मूल्यों को देखने के लिए findInterval
उपयोग कर सकते हैं:
fx <- vals[findInterval(x, c(-Inf, cuts))]
यदि इस फ़ंक्शन को केवल स्थिर मान देखने की तुलना में फैनसीयर सामान करने की आवश्यकता होती है, तो आप vals
में अभिव्यक्ति या फ़ंक्शंस या जो भी चाहें डाल सकते हैं, संभवतः यूएसआई यदि आप चाहें तो list
पर।
वैकल्पिक रूप से, के बाद से इस समारोह में एक कदम समारोह है, तो आप stepfun
उपयोग कर सकते हैं:
f <- stepfun(cuts[-1], vals)
fx <- f(x)
तो फिर तुम भी stepfun
का अच्छा अंकन तरीकों का उपयोग करने के लिए मिलता है।
स्रोत
2012-10-03 22:18:47
यह स्पष्ट करने योग्य हो सकता है कि यह उदाहरण एक चरण कार्य है, टुकड़े टुकड़े के कार्यों का एक विशेष वर्ग है। चरण कार्यों के लिए, 'stepfun' (@KenWIlliams द्वारा उल्लिखित) और 'approxfun' दोनों अच्छी तरह से काम करते हैं। 'approxfun' भी टुकड़े-रैखिक कार्यों को समायोजित करता है (लेकिन सामान्य टुकड़े टुकड़े नहीं)। – dzeltzer