I've started improving reproducibility and useability with R projects and packrat.
However I also prefer to work in R using radian (or just R at command line) and Sublime Text.
Given packrat edits the local .Rprofile to hook into package installation on startup, and I've set the settings in the .Rproj to not save history, load existing data, etc. what do I have to keep in mind when working on the same .rproj with co-authors when they use RStudio by I use sublime text and a terminal?
Sometimes it's hard to tell when some features apply only to Rstudio and others apply to other modes of working in R.
It seems like renv does not modify the .Rprofile the way packrat did. So when I open an R project, do I need to call renv::init() or does Rstudio do something behind the scenes?
If it does something behind the scenes, how can I ensure the same behavior at the terminal?
renv::init is only used to initialise renv with a project. i.e. first time set up.
next time you work on the project I wouldnt expect you to use renv::init. you could simply put renv::restore() as a line in your script, and it will ensure all needed libraries that has been snapshotted by renv will be loaded as part of your script.
As you work on developing a project adding and removing library dependencies, you manually use renv::snapshot() to record such changes, so that your renv::restores() will succeed.
There are features like renv::activate() to auto load behaviours and things, but I generally don't bother with that.
Thanks. Yes that seems right. However it looks like this should be automated according to the docs
One user (perhaps yourself) should explicitly initialize renv in the project, via renv::init(). This will create the initial renv lockfile, and also write the renv auto-loaders to the project’s .Rprofile and renv/activate.R. These will ensure the right version of renv is downloaded and installed for your collaborators when they start in this project.
When I did renv::init() it didin't modify my local .Rprofile. I think this is a bug. I looked at github to see what the added code should be but couldn't find anything super helpful, though this code seems relevant. Help is appreciated.
EDIT: Removing the .Rprofile and re-running renv::init() fixed the problem. I think I'm all set up.