2012-09-19 19 views
5

नीचे कोड में, पत्र और पत्र वैश्विक, या वैश्विक खोज पथ में और एक अन्य पैकेज के माध्यम से पहुंचा जा सकता है (एक ही बात!)आर में एलएस() वैश्विक वैरिएबल क्यों नहीं दिखाता है?

> LETTERS 
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" 
[20] "T" "U" "V" "W" "X" "Y" "Z" 
> letters 
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" 
[20] "t" "u" "v" "w" "x" "y" "z" 
> ls() 
character(0) 
> a <- "1 2 3" 
> ls() 
[1] "a" 
> rm(a) 
> ls() 
character(0) 
> 

+0

वाह, आज जंगली में बहुत सारे आर प्रोग्रामर हैं। :-) – mda

+4

ध्यान दें कि ये ** ** ** वैश्विक नहीं हैं, बस 'आधार' नामस्थान से ** निर्यात ** और इसलिए वैश्विक कार्यक्षेत्र से पहुंचा जा सकता है। –

+0

हरमएम ... क्या सभी भाषाएं निर्यात पर विचार नहीं करती हैं ... मुझे नहीं लगता .... बश पर विचार करें।तो सामान्य compsci सैद्धांतिक परिभाषा में "वैश्विक"। बेशक आर विशिष्ट आर लिंगो है। मुझे यह सीखना है। :-) – mda

उत्तर

11

इसी कारण से यह (?ls से) सभी संलग्न संकुल में सभी निर्यात कार्यों की सूची नहीं है के लिए:

डिफ़ॉल्ट रूप से, 'ls' या 'वस्तुओं' के लिए कॉल के माहौल है उपयोग किया गया।

LETTERS और ls युक्त वातावरण निर्दिष्ट करें, इसका नाम प्रिंट करेगा।

# LETTERS is in there somewhere... 
sapply(search(),ls) 
3

क्योंकि वे डेटा वस्तुओं builtin कर रहे हैं। एक सामान्य चर करने के लिए एक सामान्य काम करते हैं और आप इसे देखेंगे:

R> myLETTERS <- LETTERS 
R> ls() 
[1] "myLETTERS" 
R> 

रनिंग

R> data() 

आप सभी उपलब्ध डेटा सेट को दर्शाता है। अधिक के लिए help(data) देखें, उदाहरण के लिए वैश्विक वातावरण की बजाय विशिष्ट वातावरण में डेटा कैसे देखें।

+1

तो मैं बिल्ट-इन्स कैसे सूचीबद्ध करूं? – mda

+0

ओह, मैंने अभी जोड़ा - 'डेटा() '। –

+0

डेटा() में हालांकि लिटर और अक्षरों को शामिल नहीं किया गया है। :( – mda

6
apropos("letters",where=TRUE) 
     9   9 
"letters" "LETTERS" 

इंगित करता है कि वे खोज सूची है, जिसमें स्थिति 9 पर हैं,

search() 
[1] ".GlobalEnv"  "package:stats"  "package:graphics" 
[4] "package:grDevices" "package:utils"  "package:datasets" 
[7] "package:methods" "Autoloads"   "package:base" 

base पैकेज।

7

यदि आप ?LETTERS पढ़ते हैं तो आप ध्यान दें कि ये स्थिरांक हैं और डेटा ऑब्जेक्ट्स नहीं हैं। वह पृष्ठ यह भी इंगित करता है कि ये स्थिरांक base नामस्थान में स्थित हैं। उन्हें सूचीबद्ध करने के लिए हम ls() बताने के लिए है कि नाम स्थान में देखने के लिए है:

> ls(name = "package:base", pattern = "LETTERS") 
[1] "LETTERS" 
> ls(name = "package:base", pattern = "letters") 
[1] "letters" 
+0

अच्छा नेतृत्व! :-) यह आर में मजाकिया है जहां कोई पेज ढूंढ सकता है? निकालें और? कॉन्स्टेंट .... क्या सभी शीर्ष-स्तर मेटा-मैनपेजों (बेस पैकेज से) की एक सूची है? – mda

+0

क्या सभी वस्तुओं को "डेटा" बनाम स्थिरांक माना जाता है? Wierd नामकरण ... – mda

+2

('डेटा' फ़ंक्शन केवल संकुल से डेटासेट लोड करता है।) मैं कंसोल लाइन पर 'कॉन्स्टेंट्स' काम करने में आर-कोर को खराब करने के लिए क्रेडिट लेता हूं। यह बहुत समय पहले नहीं था कि सहायता पृष्ठ के बावजूद "कॉन्स्टेंट्स" का हकदार होने के बावजूद, वह खोज सफल नहीं होगी। 'निकालें 'हमेशा काम करता है। एक और मेटा-सर्च जो कि अच्छे उपयोग की है 'डिवाइस' है। कोई भी मदद पृष्ठ शीर्षकों की एक सूची बनाने में सक्षम हो सकता है जो फ़ंक्शन नाम भी नहीं थे, लेकिन यह मेरे वेतन ग्रेड से ऊपर है। –

6

आप एक विशेष मोड की वस्तुओं को देखने के लिए चाहते हैं और मन में एक regex खोज पैटर्न है, तो आप apropos साथ की खोज के जाने कर सकते हैं। मैं थोड़ा घबरा गया था कि मुझे कितना पता चलेगा, इसलिए मैंने पहली बार इस प्रयास की लंबाई की जांच की जो केवल 30 वर्ष का था। इस समय मेरे वर्कस्पेस में पाए गए सभी चरित्र वैक्टर हैं। ध्यान दें कि दोनों "पत्र" और पत्र "दिखाई है।

apropos(what="^", mode="character") 
[1] ".Depends"    ".Depends"    ".Depends"    ".Depends"    
[5] ".Depends"    ".Depends"    ".Depends"    ".Depends"    
[9] ".Depends"    ".Depends"    ".Depends"    ".Depends"    
[13] ".Device"    ".Firstlib_as_onLoad" ".knownS3Generics"  ".Library"    
[17] ".Library.site"  ".S3PrimitiveGenerics" "blues9"    "letters"    
[21] "LETTERS"    "month.abb"   "month.name"   "p.adjust.methods"  
[25] "R.version.string"  "sas.get.macro"  "state.abb"   "state.name"   
[29] "tm" 

आप एक ताजा सत्र के साथ ऐसा किया, तो आप के रूप में कई नहीं मिलेगा" .Depends "। अन्य बनाया-इन में से कई लोग यहाँ दिखाई है, लेकिन "अनुकरणीय" याद आ रही है, क्योंकि यह चरित्र-मोड की नहीं है आप मेरी मशीन में "पाई" की तलाश में जाते हैं तो अपनी स्थिति 25 है जो बहुत सार्थक नहीं है जब तक आप खोज() का उपयोग करें:।

> search()[as.numeric(names(apropos(what="^pi", mode="numeric",where=1)))] 
[1] "package:base" 
# Removing the numeric restriction 
> search()[as.numeric(names(apropos(what="^pi",where=1)))] 
[1] "package:base"  "package:utils"  "package:lubridate" "package:grDevices" "package:graphics" 
[6] "package:graphics" "package:MASS"  "package:MASS"  "package:MASS"  "package:base"  

तो उन सभी पैकेजों में कुछ ऑब्जेक्ट (अधिकतर फ़ंक्शन) होते हैं जो "पीआई" से शुरू होते हैं। संख्यात्मक स्थिति लोड किए गए पैकेजों की संख्या के साथ अलग-अलग होगी, क्योंकि हाल ही में लोड किए गए पैकेजों में कम संख्या वाले खोज स्थिति को धक्का देंगे एफ "आधार" उच्च।

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