Definir espelho CRAN padrão permanente em R

102

Como posso definir um espelho CRAN específico permanentemente em R?

Quero defini-lo permanentemente em meu laptop para que, quando o fizer install.packages(), ele não me pergunte novamente qual espelho devo escolher.

719016
fonte
1
Consulte stackoverflow.com/questions/1189759/… para exemplos .Rprofile.
jthetzel
4
você pode querer editar o Rprofilearquivo global . Em plataformas * NIX, ele está localizado em /usr/lib/R/library/base/R/Rprofile. Apenas .Rprofiletome cuidado ... e observe que as configurações locais têm precedência.
aL3xa
1
Seguindo o comentário de @ aL3xa, veja ?Startupos detalhes realmente sangrentos de onde os arquivos `.Rprofile podem ser localizados e quais têm precedência.
Josh O'Brien
E observe os objetos .Firste .Last.
aL3xa

Respostas:

118

Você pode definir repos em sua .Rprofile para restaurar sua escolha cada vez que você começar a R

Editar: para ser mais preciso:

Adicionar

options(repos=structure(c(CRAN="YOUR FAVORITE MIRROR")))

para o seu .Rprofile


Como alternativa, você pode definir o espelho para todo o site em seu Rprofile.site. A localização do arquivo é fornecida por ?Startup:

O caminho desse arquivo é obtido do valor da R_PROFILE variável de ambiente (após a expansão do til). Se esta variável não estiver definida, o padrão é R_HOME/etc/Rprofile.site, que é usado se existir (o que não ocorre em uma instalação 'nova de fábrica').

Então faça Sys.getenv("R_PROFILE")para a primeira opção, ou Sys.getenv("R_HOME")ou R.home()para a segunda opção. No macOS, a localização do segundo é /Library/Frameworks/R.framework/Resources/etc/.

O arquivo pode não existir ou você pode ver as seguintes linhas comentadas:

# set a CRAN mirror
# local({r <- getOption("repos")
#       r["CRAN"] <- "http://my.local.cran"
#       options(repos=r)})

Portanto, remova as marcas de comentário e altere " http: //my.local.cran " para o site correto, por exemplo:

local({r <- getOption("repos")
       r["CRAN"] <- "http://cran.r-project.org"
       options(repos=r)})
Rinni
fonte
1
Acrescentei informações extras, pois não valia a pena uma resposta extra e um pouco demais para um comentário.
Joris Meys
2
Eu não acho que essa ligação structureestá fazendo alguma coisa. Normalmente, é apenas uma maneira conveniente de adicionar atributos a um objeto.
Richie Cotton
@rinni: obrigado, pesquisei no Google a lista de URLs encontrados o que estou mais próximo de como você descreveu no .Rprofilearquivo.
3
Não parece haver um RProfile.sitearquivo em meu R 3.3.1 no Arch Linux x86_64. Há um arquivo chamado RProfileque não contém as linhas comentadas mencionadas na resposta.
SACHIN GARG
5
onde "SEU ESPELHO FAVORITO" é o URL, não o nome.
pdb