2016-08-08 2 views
1

Я нахожу это раздражающим, что я должен щелкнуть Tools -> Update Packages каждый раз, когда загружаю RStudio. Я мог бы использовать update.packages(c("ggplot2")), например, для обновления моих пакетов в .RProfile, но проблема в том, что он не будет искать другие пакеты (зависимости). Например, я должен обновлять пакет «seriation» и «digest» каждый раз, когда я запускаю RStudio, и эти пакеты не загружаются мной при запуске. У кого-нибудь есть код для автоматической проверки и обновления всех пакетов при запуске? Если да, можете ли вы поделиться здесь? Я активно искал эту тему и искал через SO, и кажется, что популярное мнение - использовать меню RStudio. Вот нить я имею в виду: How to update R2jags in R?Автоматический пакет обновления при запуске

Один из способов я могу думать делать это в .RProfile:

a<-installed.packages() 
b<-data.frame(a[,1]) 

и затем вызвать эту функцию: https://gist.github.com/stevenworthington/3178163

Однако, я не совсем убедитесь, что это самый оптимальный метод.

Другой связанный поток: Load package at start-up

Я создал нить выше. Буду признателен за любые мысли.

+1

Плохая идея. Вы поймете, что как только вам нужно создать и распечатать некоторый результат непосредственно перед важной встречей, и только тогда обновление пакета нарушит ваш код. – Roland

+0

Я вижу. Великая мысль Роланда! Я новичок в R (и переключился с STATA). Я программировал всего около 10 дней. Считаете ли вы, что такие вопросы очень распространены? – watchtower

ответ

1

Я нашел это в Интернете (не помню, где), когда я боролся с той же проблемой, хотя вам все равно нужно запустить эту программу. Надеюсь это поможет .

all.packages <- installed.packages() 
r.version <- paste(version[['major']], '.', version[['minor']], sep = '') 

for (i in 1:nrow(all.packages)) 
{ 
    package.name <- all.packages[i, 1] 
    package.version <- all.packages[i, 3] 
    if (package.version != r.version) 
    { 
    print(paste('Installing', package.name)) 
    install.packages(package.name) 
    } 
} 
Смежные вопросы