जब मैं Harlan के समग्र सलाह से सहमत (यानी जब तक आप इसे समझते हैं कुछ का उपयोग नहीं करते), मैं जोड़ना होगा:
वातावरण आर में एक मौलिक अवधारणा रहे हैं, और मेरे विचार में, अत्यंत उपयोगी (दूसरे शब्दों में: वे समझने लायक हैं!)। दायरे से संबंधित मुद्दों को समझने के लिए वातावरण बहुत महत्वपूर्ण हैं। कुछ संदर्भ जो आपको इस संदर्भ में समझना चाहिए:
search()
: आपको कार्यक्षेत्र दिखाएगा; प्राथमिकता के क्रम में वातावरण सूचीबद्ध हैं। मुख्य पर्यावरण WebobalEnv है, और हमेशा इस तरह संदर्भित किया जा सकता है।
ls()
: तुम्हें दिखाता हूँ क्या एक वातावरण
attach
/detach
में निहित है: एक वस्तु के लिए एक नया माहौल पैदा
get
, assign
, <<-
, और <-
: आप इन कार्यों के बीच अंतर पता होना चाहिए
with
: इसे संलग्न किए बिना पर्यावरण के साथ काम करने के लिए एक विधि।
एक और सूचक: the proto package (ggplot में उपयोग किया गया) पर एक नज़र डालें, जो नियंत्रित विरासत प्रदान करने के लिए वातावरण का उपयोग करता है।
आखिरकार, मैं इंगित करता हूं कि वातावरण सूचियों के समान ही हैं: वे दोनों उनके भीतर किसी भी प्रकार की वस्तु को स्टोर कर सकते हैं (this question देखें)। लेकिन आपके उपयोग के मामले के आधार पर (उदा। क्या आप विरासत और प्राथमिकता से निपटना चाहते हैं), एक सूची के साथ काम करना आसान हो सकता है। और आप हमेशा पर्यावरण के रूप में एक सूची attach
कर सकते हैं।
संपादित करें: आप ggplot
में काम पर proto
का एक उदाहरण देखना चाहते हैं, एक नजर है, तो है कि एक ggplot वस्तु की संरचना है, जो अनिवार्य वातावरण के आंशिक रूप से बना एक सूची है:
> p <- qplot(1:10, 1:10)
> str(p)
List of 8
$ data :'data.frame': 0 obs. of 0 variables
$ layers :List of 1
..$ :proto object
.. .. $ legend : logi NA
.. .. $ inherit.aes: logi TRUE
...
> class(p$layers[[1]])
[1] "proto" "environment"
> is.environment(p$layers[[1]])
[1] TRUE
ध्यान दें कि यह प्रोटो का उपयोग करके कैसे बनाया गया है और परिणामस्वरूप कई वातावरण शामिल हैं। आप graph.proto
का उपयोग करके इन वस्तुओं में संबंधों को भी प्लॉट कर सकते हैं।
यह gnarly हो सकता है और निश्चित रूप से "मानक" आर उपयोगकर्ता ('install.packages' + आयात डेटा + डेटा डेटा 'फ्रेम पर सांख्यिकीय परीक्षण चलाने के लिए आवश्यक है) के दायरे से परे है। लेकिन ग़लत कार्यों के लिए, मैं कभी-कभी 'new.env' के बारे में सोचता हूं जैसे पॉइंटर बनाना। अगर मैं एक सी 'स्ट्रक्चर' का अनुकरण करना चाहता था तो मैं इसे नेस्टेड 'new.env' के अनुक्रम के साथ करता हूं। – isomorphismes
आप पर्यावरण के साथ [बहु-असाइन] (https://stat.ethz.ch/R-manual/R-devel/library/base/html/list2env.html) भी कर सकते हैं। (एक माना जाता है कि फीचर जो कि पाइथोनिस्टस कभी-कभी शिकायत करती है।) – isomorphismes