2011-08-18 9 views
5

आर के : ऑपरेटर कुछ प्रसिद्ध gotchas है:मैं आर के `ऑपरेटर के साथ अपनी समस्याओं को कैसे संतुष्ट कर सकता हूं?

a = c(1, 2, 3) 
set.zero = function(n) a[1:n] <<- 0 
set.zero(0) 
# `a` is now c(0, 2, 3) 

मैं सिर्फ एक समारोह है कि बनाने 1:0 एक खाली वेक्टर देने के द्वारा इस हल करती लिख सकता है, लेकिन मैं इसे पसंद करते हैं, अगर वहाँ थे एक यथोचित संक्षिप्त base या CRAN पैकेज जो इस तरह के एक फ़ंक्शन प्रदान करता है (आदर्श रूप से : को प्रतिस्थापित करता है यदि यह खतरनाक नहीं है)। मैंने एक की तलाश करने की कोशिश की है लेकिन इसे नहीं मिला।

क्या ऐसी कोई चीज मौजूद है?

उत्तर

6

इस प्रयास करें:

set.zero = function(n) a[seq_len(n)] <<- 0 

ध्यान दें कि seq(1, length = n) रूप में अच्छी तरह से काम करता है।

+0

अच्छा। हालांकि इसे 'ए: बी' को सामान्यीकृत करने के लिए अंकगणित की आवश्यकता है। – Owen

+1

@ ओवेन अंकगणित !? डर! डर! ;) – joran

+0

@ ओवेन, उस पर कुछ जानकारी जोड़ा है। –

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

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