Alterar o caminho da biblioteca padrão R usando .libPaths no Rprofile.site não funciona

Estou executando o R no Windows, não como administrador. Quando eu instalo um pacote, o seguinte comando não funciona:

> install.packages("zoo") Installing package(s) into 'C:/Program Files/R/R-2.15.2/library' (as 'lib' is unspecified) Warning in install.packages : 'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable 

Para instalar um pacote, tenho que especificar um local de biblioteca:

 install.packages("zoo", lib="C:/software/Rpackages") 

Para carregar um pacote, também preciso especificar o local da biblioteca:

 library("zoo", lib.loc="C:/software/Rpackages") 

Tudo isso está OK, mas eu queria ver se eu poderia adicionar C:/software/Rpackages ao caminho da biblioteca de alguma forma e, portanto, não ter que digitá-lo toda vez.

Ao pesquisar on-line, descobri que uma maneira de fazer isso é editar o arquivo Rprofile.site e adicionar a linha

 .libPaths("C:/software/Rpackages") 

No entanto, depois de fazer isso e iniciar o RStudio, essa é a saída que recebo

 > .libPaths() [1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

O comando .libPaths que eu adicionei ao Rprofile.site não parece ter tido nenhum efeito! Por que esse é o caso? Ou, mais importante, como posso corrigir o problema para que eu possa instalar e carregar pacotes sem digitar no local da biblioteca?

Nota: se eu iniciar o RStudio, o comando .libPaths() parece funcionar como deveria

 .libPaths("C:/software/Rpackages") > .libPaths() [1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library" 

Isso não é estranho?

    Eu geralmente tento manter todos os meus pacotes em uma biblioteca, mas se você quiser adicionar uma biblioteca, por que não acrescentar a nova biblioteca à biblioteca existente:

     .libPaths( c( .libPaths(), "~/userLibrary") ) 

    Então eu recebo:

     > .libPaths() [1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library" [2] "/Users/davidwinsemius/userLibrary" 

    A function .libPaths é um pouco diferente da maioria das outras funções não gráficas. Funciona via efeito colateral. As funções Sys.getenv e Sys.setenv que relatam e alteram as variables ​​de ambiente R foram separadas, mas os .libPaths podem relatar ou alterar seu destino. As informações sobre o processo de boot do R podem ser lidas na página de ajuda do ?Startup e há o material do RStudio em: https://support.rstudio.com/hc/pt-br/articles/200549016-Customizing-RStudio

    No seu caso, parece que o RStudio não está respeitando as configurações do Rprofile.site ou, talvez, esteja substituindo-as, lendo uma configuração .Rprofile de um dos padrões do RStudio. Também deve ser mencionado que o resultado desta operação também acrescenta o conteúdo de chamadas para .Library e .Library.site , que é mais um motivo pelo qual um R hospedado RStudio- (ou qualquer outro IDE ou rede instalado-) pode exibir comportamento diferente .

    A solução adequada é definir a variável de ambiente R_LIBS_USER como o valor do caminho do arquivo para a pasta de biblioteca desejada, em vez de fazer com que o RStudio reconheça um arquivo Rprofile.site.

    Para definir a variável de ambiente R_LIBS_USER no Windows, vá para o Painel de Controle (Propriedades do Sistema -> Propriedades Avançadas do Sistema -> Variáveis ​​de Ambiente -> Variáveis ​​do Usuário) para um valor desejado (o caminho para a pasta da biblioteca), por exemplo

     Variable name: R_LIBS_USER Variable value: C:/software/Rpackages 

    A configuração de R_LIBS_USER garantirá que a biblioteca apareça primeiro em .libPaths (), independentemente de iniciar o RStudio diretamente ou clicando com o botão direito do mouse em um arquivo e “Abrir com” para iniciar o RStudio.

    A solução Rprofile pode funcionar se o RStudio for sempre iniciado clicando no atalho do RStudio. Nesse caso, configurar o diretório de trabalho padrão para o diretório que hospeda seu perfil R será suficiente. A solução Rprofile não funciona ao clicar em um arquivo para iniciar o RStudio, porque isso altera o diretório de trabalho para fora do diretório de trabalho padrão.

    Consegui resolver o problema colocando o código no arquivo .Rprofile no diretório de trabalho padrão.

    Primeiro, encontrei o local do diretório de trabalho padrão

     > getwd() [1] "C:/Users/me/Documents" 

    Então eu usei um editor de texto para escrever um simples arquivo .Rprofile com a seguinte linha nele

     .libPaths("C:/software/Rpackages") 

    Finalmente, quando inicio o R e executo o .libPaths() , obtenho a saída desejada:

     > .libPaths() [1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library" [3] "C:/Program Files/RStudio/R/library" 

    Se você não tem direitos de administrador, também pode ser útil abrir o Rprofile.site localizado em \ R-3.1.0 \ etc e adicionar:

     .First < - function(){ .libPaths("your path here") } 

    Isso avalia o comando .libPath() diretamente no início

    Eu encontrei o que eu acho que é uma solução aqui (obrigado Carl Schwarz na SFU) por adicionar uma biblioteca pessoal que é permanentemente (você não precisa defini-la em cada session) reconhecida usando R ou Rstudio, e Rstudio a trata como o padrão na minha máquina Mac. Eu não tinha visto isso explicitamente no SO, então eu resumi os passos que eles forneceram, para o Windows e depois para o Mac.

    Para um sistema operacional Windows 7:

    1. Crie um diretório na unidade onde você deseja ter sua biblioteca pessoal, por exemplo, C: \ User \ Rlibs (ou outro que você tenha permissions para)

    2. Pesquise / vá para “Editar variável de ambiente para sua conta”

    3. Clique em “Novo …” no meio da janela “Variáveis ​​Ambientais”

    4. Na janela “New User Variable”, digite R_LIBS para “Variable name” e o caminho para o diretório da biblioteca pessoal que você criou, por exemplo, C: \ User \ Rlibs

    5. Clique em OK e você verá o par Variable / Value na janela Variáveis ​​do usuário

    6. Clique em OK novamente

    Agora, quando você inicia o R (ou Rstudio) e digita o comando .libPaths() deve ver a biblioteca pessoal que criou, assim como a biblioteca do sistema R.

    Para Mac:

    1. Em seu diretório “Home” ou “username”, crie uma pasta chamada Rlibs

    2. Inicie o aplicativo Terminal

    3. Digite: echo "R_LIBS=~/Rlibs"> .Renvrion Verifique se o case corresponde.

    4. Digite ls -a para ver a lista completa de arquivos no diretório, que agora deve include .Renvrion

    5. Verifique se o arquivo .Renviron foi definido corretamente: more .Renviron

    Inicie o R / Rstudio e digite .libPaths() e você deverá ver o novo caminho para sua biblioteca pessoal.

    Eu tive problemas reais para entender isso. O gorkypl deu a solução correta acima quando re-instalei o meu OS & Rstudio pela última vez, mas desta vez, a configuração da minha variável de ambiente não resolveu.

    Desinstalou o R e o Rstudio, criando os diretórios C: \ R e C: \ Rstudio e, em seguida, reinstalou ambos.

    Defina a variável de usuário R_LIBS_USER para o seu diretório preferido (conforme a resposta de gorkypl) e reinicie sua máquina para que a variável User seja carregada. Abra o Rstudio, os erros devem desaparecer.

    Você também pode usar Sys.setenv() para modificar R_LIBS_USER para o caminho da sua biblioteca alternativa, que é mais fácil e não precisa reiniciar o computador.

    Para ver o que R_LIBS_USER está definido como ?Sys.getenv()

    A help(Startup) leitura help(Startup) é útil.

    Se a sua biblioteca de pacotes padrão foi alterada após a instalação de uma nova versão do R ou por qualquer outro meio, você pode append ambas as bibliotecas para usar todos os pacotes com a ajuda dos comandos abaixo. Obtenha o caminho da biblioteca existente:

    .libPaths()

    Agora, defina o caminho existente e o antigo:

    .libPaths(c(.libPaths(), "~/yourOldPath"))

    Espero que ajude.

    Eu li o leiame. Em que eles mencionaram usar .libPaths () na linha de comando para verificar quais caminhos estão lá. Eu tinha 2 caminhos de biblioteca anteriormente. Quando eu usei o comando .libpath (“C: / Program Files / R / R-3.2.4revised / library”) onde eu queria, ele mudou o caminho da biblioteca. Quando eu digitei .libPaths () na linha de comando novamente, ele me mostrou o caminho correto. Espero que isto ajude

     getwd() 

    [1] “C: / Users / …. / software / My R studio” #cópia do link acima com dupla vírgula invertida

     .libPaths(new="C:/Users/............/software/My R studio") #your default path will change for installing pakages 

    Eu estava olhando para isso, porque R estava tendo problemas de instalação no local padrão e estava apenas colocando os pacotes na pasta temp. Acabou sendo a atualização mais recente do Mcaffee Endpoint Security, que aparentemente tem problemas com o R. Você pode desativar a proteção contra ameaças enquanto instala os pacotes e ele funcionará corretamente.