2015-07-29 3 views
12

मैं के रूप में संगठन के नेटवर्क फ़ोल्डर के लिए विरोध किया क्योंकि कुछ भी है कि नेटवर्क के माध्यम से चलाता है वास्तव में धीमी है मेरे काम कंप्यूटर पर स्थानीय ड्राइव पर आर और आर स्टूडियो स्थापित करने के लिए प्रयास किया है के लिए डिफ़ॉल्ट लाइब्रेरी पथ कैसे बदल सकता हूँ। स्थापित करते समय, गंतव्य पथ दिखाता है कि यह मेरा स्थानीय सी: ड्राइव है। हालांकि, जब मैं एक नया पैकेज स्थापित, डिफ़ॉल्ट दिखाए पथ मेरे नेटवर्क ड्राइव है और वहाँ बदलने के लिए कोई विकल्प नहीं है:मैं आर संकुल

.libPaths() 
[1] "\\\\The library/path/I/don't/want" 
[2] "C:/Program Files/R/R-3.2.1/library" 

मैं चल रहा हूँ विंडोज 7 पेशेवर। मैं लाइब्रेरी पथ को कैसे हटा सकता हूं [1] और पथ [2] सभी प्राथमिक पैकेजों और मेरे द्वारा इंस्टॉल किए गए सभी नए पैकेजों के लिए अपना प्राथमिक बना सकता हूं?

उत्तर

16

help(Startup) और help(.libPaths) देखें क्योंकि आपके पास कई संभावनाएं हैं जहां यह सेट हो सकता है। उनमें से

  • .Rprofile में .libPaths() या Rprofile.site

और अधिक बताए R_LIBS_USER

  • की स्थापना कर रहे हैं।

    इस विशेष मामले में आप पीछे की ओर और सेट नहीं जाने के लिए जहाँ \\\\The library/path/I/don't/want सेट किया गया है की जरूरत है।

    अन्यथा इसे अनदेखा करने के लिए आप इसे माध्यम से

    library("somePackage", lib.loc=.libPaths()[-1]) 
    

    स्पष्ट रूप से अर्थात का उपयोग जब एक पैकेज लोड हो रहा है ओवरराइड करने के लिए की जरूरत है।

  • +2

    धन्यवाद इतना, मैं सिर्फ सेट .libPaths ("सी :/प्रोग्राम फ़ाइलें/आर/आर-3.2.1/लाइब्रेरी ") और अब यह एकमात्र रास्ता है जो दिखाता है। – user3594490

    +1

    दिलचस्प। मैंने ओवरराइड करने के बजाय यह _added_ सोचा था? –

    +0

    और यह सुनिश्चित है कि मेरे यूनिक्स बॉक्स पर मौजूदा '.libPaths()' _adds_ है। –

    15

    विंडोज 7: यदि आपका C:\Program Files (या जहां भी आर स्थापित है) लिखने के लिए अवरुद्ध है, जैसा कि मेरा है, तो आप निराश संपादन RProfile.site (जैसा मैंने किया था)। जैसा ऊपर बताया गया है, मैंने R_LIBS_USER अपडेट किया और यह काम किया। हालांकि, ठीक मैनुअल को कई बार और व्यापक खोज पढ़ने के बाद भी, मुझे ऐसा करने में कई घंटे लगे। किसी और समय की बचत की भावना ... में

    मान लेते हैं तो आप अपने संकुल C:\R\Library में रहते हैं करना चाहते हैं:

    1. फ़ोल्डर C:\R\Library
    2. क्लिक करें Start बनाएं ->Control Panel ->User Accounts - ->Change my environmental variables
    3. Environmental Variables विंडो पॉप अप। यदि आप R_LIBS_USER देखते हैं, तो इसे हाइलाइट करें और Edit पर क्लिक करें। अन्यथा New पर क्लिक करें। दोनों क्रियाएं Variable और Value के लिए फ़ील्ड के साथ एक विंडो खोलती हैं।
    4. मेरे मामले में, R_LIBS_USER पहले से ही वहां था, और मूल्य मेरे डेस्कटॉप का पथ था। मैंने जिस फ़ोल्डर को बनाया है, उस पथ में जोड़ा गया है, जैसा ऊपर वर्णित अर्धविराम से अलग किया गया है। C:\R\Library;C:\Users\Eric.Krantz\Desktop\R stuff\Packages। नोट: मैं डेस्कटॉप स्थान के पथ को हटा सकता था और बस C:\R\Library छोड़ दिया था।
    5

    एक ही समस्या का सामना करना (नेटवर्क में डिफ़ॉल्ट पथ से परहेज करना) मैं अन्य समाधानों में दिए गए संकेतों के साथ इस समाधान पर आया।

    समाधान Rprofile फ़ाइल को R_LIBS_USER को ओवरराइट करने के लिए संपादित कर रहा है जो डिफ़ॉल्ट रूप से होम निर्देशिका पर इंगित करता है।

    ये कदम उठाएँ:

    1. पुस्तकालयों के लिए लक्ष्य गंतव्य फ़ोल्डर बनाएँ, उदाहरण के लिए, ~\target
    2. Rprofile फ़ाइल खोजें। मेरे मामले में यह C:\Program Files\R\R-3.3.3\library\base\R\Rprofile पर था।
    3. फ़ाइल संपादित करें और परिवर्तनीय R_LIBS_USER परिभाषा को बदलें। मेरे मामले में, मैंने इस लाइन file.path(Sys.getenv("R_USER"), "R", को file.path("~\target", "R", के साथ बदल दिया।

    प्रलेखन का समर्थन करने वाले इस समाधान here

    साथ मूल फ़ाइल है:

    if(!nzchar(Sys.getenv("R_LIBS_USER"))) 
        Sys.setenv(R_LIBS_USER= 
           file.path(Sys.getenv("R_USER"), "R", 
              "win-library", 
              paste(R.version$major, 
               sub("\\..*$", "", R.version$minor), 
               sep=".") 
             )) 
    

    संशोधित फ़ाइल:

    if(!nzchar(Sys.getenv("R_LIBS_USER"))) 
        Sys.setenv(R_LIBS_USER= 
           file.path("~\target", "R", 
              "win-library", 
              paste(R.version$major, 
               sub("\\..*$", "", R.version$minor), 
               sep=".") 
             )) 
    
    +1

    मैंने हाल ही में विन 7 और "~ \ target" के साथ एक मशीन पर प्रक्रिया का उपयोग नहीं किया था, मुझे "~/target" का उपयोग करना पड़ा। मैंने कभी ठीक से नहीं समझा है कि क्यों और कब "/" या "\" का उपयोग मायने रखता है। – Marco