169 похожих чатов

Все привет! Я тут на новой машине планирую (пере)установить R

по-новой. Хотел бы поинтересоваться, есть ли какие-то актуальные материалы, как это можно сделать "по уму"?

Я вот помню, что в чате обсуждались варианты установки portable-версии, потом для контроля версий была какая-то штука, которая не просто окружение в папку проекта клонирует (не знаю, как это правильнее назвать), а создает файл с текущими версиями всего. Т.е. всегда можно узнать, какие пакеты использовались в проекте и какие у них были версии, чтобы можно было воспроизвести эту среду

Иными словами, есть ли какая-то инструкция или подход, как себе установить долгоиграющий R, чтобы не беспокоиться по поводу (пере)запуска старых скриптов?

Если важно: поскольку у меня проекты иногда долгоиграющие или требующие ad-hoc анализа в самый неожиданный момент, запускать один и тот же код может понадобиться как минимум через 2 года. К этому времени и машина может поменять, и у R куча новых версий выйдет. А сейчас я обновляюсь не чаще раза в год, чтобы код в неожиданных местах не ломался (data.table не предлагать! :)

8 ответов

22 просмотра

Docker + renv + иногда бэкап + подвальчик с морозилкой

Ed-P Автор вопроса
Ilya Shutov
Docker + renv + иногда бэкап + подвальчик с морози...

ну бэкапы понятно. Я всю жизнь на винде просидел и докеры только в на убунтовских VPS-ках поднимал. А, точняк, renv - спасибо.

dt до сих пор поддерживает чуть ли не первые релизы 3.x что-то у них было типа поддержки мажорных версий последних пяти лет, что ли

Ed-P Автор вопроса
Ilya Shutov
Docker + renv + иногда бэкап + подвальчик с морози...

А вот что в Introduction to renv говорится It is important to emphasize that renv <...> is a tool that can help make projects reproducible by solving one small part of the problem: it records the version of R + R packages being used in a project, and provides tools for reinstalling the declared versions of those packages in a project. это разве не означает, что все пакеты будут в проектах установлены? (т.е. если у меня в год 10 проектов возникает, то они все будут тянуть за собой переустановку всех пакетов?) Я так представлял, что есть R версии 4.0, допустим. для этой версии есть директория с либами, в директории с либами есть папки всех версий всех пакетов (типа package1-v.1.0, package1-v.2.0, package2-v.1.1 и т.д.). И дальше уже renv или какая-то другая штука в проекте выбирает, какие версии пакетов нужно подключить из централизованного места. При обновлении R появляется новая директория типа R 4.2, процесс с установкой пакетов повторяется уже в отдельной директории для нового R. В идеальной ситуации при запуске проектного файла нужная версию R тоже как-то автоматически выбирается. Или это концептуально неверно?

Ed-P Автор вопроса
Ilya Shutov
https://packagemanager.rstudio.com/client/#/

Только сейчас смог почитать. Мне нравится подход, однако стоимость....

Ed-P Автор вопроса
Ilya Shutov
https://packagemanager.rstudio.com/client/#/

Что-то похожее вроде репозиториев drat предлагает. я пока с ним не совсем разобрался, но выглядит интересно: если сделать свой личный репозиторий и при обновлении делать снэпшоты, то по сути можно соорудить что-то вроде мини-CRAN с более редкими датами. Выглядит сильно похоже на то, что нужно.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта