Estou executando o R no Windows, não como administrador. Quando 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, preciso especificar um local da 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á bem, mas eu queria ver se eu poderia adicionar C:/software/Rpackages
ao caminho da biblioteca de alguma forma e, portanto, não precisar digitá-lo toda vez.
Ao pesquisar online, descobri que uma maneira de fazer isso é editar o Rprofile.site
arquivo 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 .libPaths
comando que eu adicionei ao Rprofile.site
não parece ter tido nenhum efeito! Por que esse é o caso? Ou, mais importante, como posso resolver o problema para instalar e carregar pacotes sem digitar no local da biblioteca?
Nota: se eu iniciar o RStudio, o .libPaths()
comando parecerá 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?
fonte
install.packages("zoo")
não funciona? Mensagem de erro, etc.?install.packages("zoo")
--- mas que não é a minha verdadeira pergunta, que é sobre o porquê.libPaths()
deRprofile.site
não funciona.Respostas:
Geralmente, tento manter todos os meus pacotes em uma biblioteca, mas se você deseja adicionar uma biblioteca, por que não anexar a nova biblioteca (que já deve existir no seu sistema de arquivos) ao caminho da biblioteca existente?
Ou (e isso tornará a userLibrary o primeiro lugar para colocar novos pacotes):
Então eu recebo (pelo menos quando escrevi isso originalmente):
A
.libPaths
função é um pouco diferente da maioria das outras funções não gráficas. Funciona via efeito colateral. As funçõesSys.getenv
eSys.setenv
esse relatório e alteram as variáveis de ambiente R foram divididas, mas.libPaths
podem relatar ou alterar seu destino.As informações sobre o processo de inicialização do R podem ser lidas na
?Startup
página de ajuda e há material do RStudio em: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudioNo seu caso, parece que o RStudio não está respeitando as configurações do Rprofile.site ou talvez as esteja substituindo 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 anexa o conteúdo das chamadas
.Library
e.Library.site
, razão pela qual um R hospedado no RStudio- (ou qualquer outro IDE ou rede instalado-) hospedado R pode exibir um comportamento diferente.Como
Sys.getenv()
retorna o ambiente atual do sistema para o processo R, você pode ver a biblioteca e outros caminhos com:Os dois que são importantes para armazenar e acessar pacotes são (agora diferentes em uma caixa Linux):
fonte
c()
vector para garantir novas bibliotecas ir para a pasta personalizada.libPaths
função-tem o mesmo efeito por padrão. Há também uma diferença entre os sistemas operacionais na maneira como as barras finais são tratadas. (Não está bem no Windows). Existem outras opções. Veja?.libPaths
file.exists
e prosseguir apenas se o caminho não estiver faltando.A solução adequada é definir a variável de ambiente
R_LIBS_USER
com o valor do caminho do arquivo para a pasta da 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 sua biblioteca), por exemploA configuração de R_LIBS_USER garantirá que a biblioteca seja exibida primeiro em .libPaths (), independentemente de iniciar o RStudio diretamente ou clicando com o botão direito do mouse em um arquivo e em "Abrir com" para iniciar o RStudio.
A solução Rprofile pode funcionar se o RStudio sempre for iniciado clicando no atalho do RStudio. Nesse caso, definir o diretório de trabalho padrão como o diretório que hospeda seu Rprofile será suficiente. A solução Rprofile não funciona ao clicar em um arquivo para iniciar o RStudio, porque isso altera o diretório ativo do diretório ativo padrão.
fonte
.bash_profile
e / ou.bashrc
). Veja aqui: unix.stackexchange.com/questions/117467/... Para definir estes para a sessão atual só digitar consolaexport R_LIBS_USER='directory_of_your_choice'
Consegui resolver o problema colocando o código no
.Rprofile
arquivo no diretório de trabalho padrão.Primeiro, encontrei o local do diretório de trabalho padrão
Então eu usei um editor de texto para escrever um
.Rprofile
arquivo simples com a seguinte linhaFinalmente, quando inicio
R
e executo.libPaths()
, obtenho a saída desejada:fonte
Sys.getenv("HOME")
no console r. Não tenho certeza se você obtém a saída desejada. Acho que o resultado desejado é o que 42 mostrou em sua resposta stackoverflow.com/a/15170774/754550 . Ele usa .libPaths de uma maneira ligeiramente diferente./superuser/749283/change-rstudio-library-path-at-home-directory
Editar ~ / .Renviron
fonte
Encontrei o que acho uma solução aqui (obrigado Carl Schwarz, da SFU) por adicionar uma biblioteca pessoal permanentemente (você não precisa defini-la a cada sessão) reconhecida se está usando R ou Rstudio, e o Rstudio a trata como a padrão na minha máquina Mac. Eu não tinha visto isso explicitamente explicado no SO, então resumi as etapas que eles forneceram, para Windows e depois para Mac.
Para um sistema operacional Windows 7:
Crie um diretório na unidade onde você deseja ter sua biblioteca pessoal, por exemplo, C: \ User \ Rlibs (ou outro para o qual você tenha permissão)
Pesquise / vá para "Editar variável de ambiente para sua conta" na barra de pesquisa do Windows para editar as configurações do painel de controle
Clique em "Novo ..." no meio da janela "Variáveis ambientais"
Na janela "Nova variável do usuário", digite R_LIBS para o "Nome da variável" e o caminho para o diretório da biblioteca pessoal que você criou, por exemplo, C: \ User \ Rlibs
Clique em OK e você verá o par Variável / Valor na janela Variáveis de usuário
Clique em OK novamente
Agora, ao iniciar o R (ou Rstudio) e digitar o comando,
.libPaths()
você deverá ver a biblioteca pessoal criada e a biblioteca do sistema R.Para Mac:
No diretório "Inicial" ou "nome de usuário", crie uma pasta chamada Rlibs
Inicie o aplicativo Terminal
Tipo:
echo "R_LIBS=~/Rlibs"> .Renvrion
verifique se o caso corresponde.Digite
ls -a
para ver a lista completa de arquivos no diretório, que agora deve incluir .RenvrionVerifique 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.fonte
Se você não possui direitos de administrador, também pode ser útil abrir o
Rprofile.site
arquivo localizado em \ R-3.1.0 \ etc e adicionar:Avalia o
.libPath()
comando diretamente no iníciofonte
Eu tive problemas para entender isso. O gorkypl forneceu a solução correta acima quando eu reinstalei meu SO e Rstudio, mas desta vez, definir a variável de ambiente não foi resolvida.
Desinstalou o R e o Rstudio, criando os diretórios C: \ R e C: \ Rstudio e reinstalou os dois.
Defina a variável de usuário R_LIBS_USER para o seu diretório preferido (conforme resposta do gorkypl) e reinicie a máquina para que a variável de usuário seja carregada. Abra o Rstudio, os erros devem ter desaparecido.
Você também pode usar
Sys.setenv()
para modificar R_LIBS_USER para o caminho da sua biblioteca alternativa, o que é mais fácil e não precisa reiniciar o computador.Para ver o que R_LIBS_USER está definido como:
?Sys.getenv()
A leitura
help(Startup)
é útil.fonte
Se 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 anexar as duas 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.
fonte
basta alterar a pasta padrão para suas bibliotecas R em um diretório sem direitos de administrador, por exemplo
fonte
Eu li o leia-me. Na medida em que eles mencionaram, use .libPaths () na linha de comando para verificar quais caminhos existem. Eu tinha 2 caminhos de biblioteca anteriormente. Quando usei o comando .libpath ("C: / Arquivos de Programas / R / R-3.2.4revised / library") onde eu queria, ele mudou o caminho da biblioteca. Quando digitei .libPaths () na linha de comando novamente, ele me mostrou o caminho correto. Espero que isto ajude
fonte
No Ubuntu, a maneira recomendada de alterar o caminho da biblioteca padrão para um usuário é definir a
R_LIBS_USER
variável no~/.Renviron
arquivo.fonte
copie o link acima com vírgula dupla invertida
Seu caminho padrão será alterado para a instalação de pakages
fonte
Se você deseja alterar permanentemente o caminho da sua biblioteca (sem chamar .libPath () sempre que entrar no R, isso funciona para mim:
crie .Rprofile no seu diretório pessoal. (~ / .Profile)
digite o
.libPaths(c( .libPaths(), "your new path" ))
arquivo .Rprofile, salve.abra R (qualquer diretório) e verifique, apenas digite
.libPaths()
, você pode encontrar o seu caminho da libaray atualizado!fonte
Eu estava investigando isso porque o R estava com problemas para instalar 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 apresenta problemas com o R. Você pode desativar a proteção contra ameaças enquanto instala os pacotes e ele funcionará corretamente.
fonte