आर शब्दावली में, आप g()
के मूल्यांकन पर्यावरण की मूल फ्रेम (अर्थात वातावरण में g
कहा जाता था) की जांच के लिए इच्छुक रहे हैं। ऐसा करने के लिए कार्य ?sys.parent
के लिए सहायता पृष्ठ में दस्तावेज किए गए हैं।
एक बार आपका ब्राउज़र इंगित करता है कि आप 'debugging in g(x + 1)'
हैं, तो आप निम्न कार्य कर सकते हैं। (where
सुझाव कॉल स्टैक में लोगों स्थिति का पता करने में मदद करने के लिए यहोशू उलरिच के लिए धन्यवाद।)
# Confirm that you are where you think you are
where
# where 1 at #3: g(x + 1)
# where 2: f()
# Get a reference to g()'s parent frame (an environment object)
pframe <- parent.frame()
pframe
# <environment: 0x019b9174>
# Examine the contents of the parent frame
ls(env=pframe)
# [1] "x"
# Get the value of 'x' in the parent frame
get("x", env = pframe)
# [1] 1
संपादित: ?sys.parent
में वर्णित कार्यों के संग्रह को समझने के लिए, यह शायद ध्यान देने योग्य बात यह है कि parent.frame()
लायक है (मूल रूप से) sys.frame(sys.parent(1))
के लिए शॉर्टेंड। यदि आप खुद को एक मूल्यांकन स्टैण्ड में एक कॉल स्टैक से आगे पाते हैं (उदाहरण के लिए where
द्वारा खुलासा किया गया है), तो आप parent.frame(2)
या sys.frame(sys.parent(2))
द्वारा कॉल स्टैक (दो चरणों को ऊपर बताएं) के पीछे वातावरण में पहुंच सकते हैं।
स्रोत
2012-03-21 03:27:46
टाइपिंग 'कहां' ब्राउज़र में ऐसा लगता है कि यह निर्धारित करने में सहायक होगा कि आपको कितने फ्रेम वापस जाने की आवश्यकता है। –
धन्यवाद @ जोशुआ उस बहुत ही उपयोगी सुझाव के लिए। मैंने इसे सीधे आपकी टिप्पणी से पकड़ लिया और इसे कोड ब्लॉक के शीर्ष पर चिपकाया। –
उत्कृष्ट उत्तरों के लिए सभी को धन्यवाद। – Alex