R Open does not show/update to latest version of MRAN package - r

I want to update an R package using Microsoft R Open via Microsoft R Server. I can see in MRAN package repo that the package version is 1.2.0 but when I try an update in RStudio it says all packages up to date although respective package is still on version 1.1.0 (dbplyr in my case). Why is R not updating the package? RStudio points to C:\Program Files\Microsoft\ML Server\R_SERVER.
sessionInfo()
#>R version 3.4.1 (2017-06-30)
#>Platform: x86_64-w64-mingw32/x64 (64-bit)
#>Running under: Windows 7 x64 (build 7601) Service Pack 1
#Matrix products: default
#>locale:
#>[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
#>[4] LC_NUMERIC=C LC_TIME=English_United States.1252
#>attached base packages:
#>[1] stats graphics grDevices utils datasets methods base
#>other attached packages:
#>[1] RevoUtilsMath_10.0.0 RevoUtils_10.0.5 RevoMods_11.0.0 MicrosoftML_1.5.0 mrsdeploy_1.1.2 RevoScaleR_9.2.1
#>[7] lattice_0.20-35 rpart_4.1-11
#>loaded via a namespace (and not attached):
#>[1] codetools_0.2-15 CompatibilityAPI_1.1.0 foreach_1.4.4 grid_3.4.1 R6_2.2.0
#>[6] jsonlite_1.4 curl_2.6 iterators_1.0.8 tools_3.4.1 yaml_2.1.14
#>[11] compiler_3.4.1 mrupdate_1.0.1
packageVersion("dbplyr")
#>‘1.1.0’
RStudio IDE has as mirror Global (CDN) - RStudio but I guess this is overruled by MRAN?

So you are running Microsoft R Server, and that has an R version of 3.4.1. I believe what happens is that when you try to upgrade using MRAN, the upgrade takes into consideration which version of R you're on - and (I believe again) the latest version of dbplyr for R 3.4.1 was 1.1.0. You can read more about snapshots and checkpoints here.
What you can do if you want is to install the package straight from the CRAN repo, using code something like so:
install.packages("dbplyr", repos = "https://cloud.r-project.org/", dependencies=TRUE, lib = pkg.dir)
Hope this helps!
Niels

Related

packrat::resolve() keeps asking me to install Rtools while it is already installed

I discovered today the very (very) cool packrat R package to make your project reproducible.
However, when I use packrat for my project by using packrat::resolve() in Rstudio, the packages that need Rtools trigger a pop-up window asking me to install Rtools (while it is already install in "C:\rtools40"). On the other hand, Rstudio is installed in "C:\Program Files\RStudio".
I tried to build this project on an other laptop and this problem doesn't appear (Rtools is installed the same and Rstudio is installed directly in C:\RStudio).
This means that Rstudio doesn't find the rtools path on the first laptop.
Is it a common problem? Could it be linked to the Rstudio path?
For info:
> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)
Matrix products: default
locale:
[1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.0.2 bookdown_0.20 rsconnect_0.8.16 htmltools_0.5.0 tools_4.0.2 yaml_2.2.1 rmarkdown_2.5
[8] knitr_1.30 xfun_0.18 digest_0.6.27 rlang_0.4.8 evaluate_0.14
Cheers!
EDIT
It turns out that using the new alternative to packrat (renv) solves this problem.
You need to add RTools40 to your PATH. You can do this either using the UI (search for "Environmental variables" on Windows search) or using
library(devtools)
Sys.setenv(PATH = paste("C:/Rtools40/bin", Sys.getenv("PATH"), sep=";"))
Sys.setenv(BINPREF = "C:/Rtools40/mingw_$(WIN)/bin/")

Package 'xxx’ was installed before R 4.0.0: please re-install it (already done fresh install and checked lib paths)

I am having some issue with installing a package in R 4.0.2 from binaries. Here is my attempt:
> install.packages("C:/Users/MNestor/Downloads/libSBML_5.18.0.zip", repos = NULL, type = "win.binary")
Installing package into ‘C:/Users/MNestor/Documents/R/win-library/4.0’ (as ‘lib’ is unspecified)
package ‘libSBML’ successfully unpacked and MD5 sums checked
Warning messages:
1: multiple methods tables found for ‘type’
2: multiple methods tables found for ‘type<-’
Next I load library:
> library('libSBML')
Error: package or namespace load failed for ‘libSBML’:
package ‘libSBML’ was installed before R 4.0.0: please re-install it
This error is confusing to me because I am working in R 4.0.2 and have clearly just done a fresh install.
I have tried
deleting the library folder and reinstalling
running remove.packages('libSBML') and reinstalling
For reference here are my library directories:
> .libPaths()
[1] "C:/Users/MNestor/Documents/R/win-library/4.0"
[2] "C:/Program Files/R/R-4.0.2/library"
The libSMBL folder is located in the first library path, and not the second (as expected).
Here is session info:
> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods base
other attached packages:
[1] rsbml_2.46.0 BiocGenerics_0.34.0
loaded via a namespace (and not attached):
[1] BiocManager_1.30.10 compiler_4.0.2 tools_4.0.2 remotes_2.2.0
[5] stats4_4.0.2 SBMLR_1.84.0 graph_1.66.0
The error message is maybe a bit confusing, but it's saying the package is already compiled for an earlier version of R. (That's what the option "win.binary" means).
R 4.0 and earlier binaries are not compatible because of updated compilers and build tools.
You'll need to install the package from source, which likely means installing R tools (https://cran.r-project.org/bin/windows/Rtools/) or you'll need to use a version that is pre-built for R 4.0 or later.

Unable to use svDialogs without attaching to search path

I need to obtain user input from the svDialogs R package, e.g. using svDialogs::dlgInput(). However, attempting to do this without attaching the package with library() or require() gives an error:
svDialogs::dlgInput("Example")
Error in svDialogs::dlgInput("Example") : attempt to apply non-function
The following works fine:
library(svDialogs)
svDialogs::dlgInput("Example")
Why might this be, and what might be a way around it? I have the current CRAN version of the package (0.9.57).
Update
I have tried installing previous versions of svDialogs, as well as comparing my code with the source code from the cgam package, which depends on svDialogs. Currently the entire svDialogs package is imported in my NAMESPACE, which is how it is used in cgam. But I still get the same error unless I first run library(svDialogs). Any tips?
Update 2
I also imported the entire svGUI package in my NAMESPACE, with no luck.
sessionInfo() R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale: [1] LC_COLLATE=English_United States.1252
LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages: [1] stats graphics grDevices utils
datasets methods base
other attached packages: [1] svDialogs_0.9-57 svGUI_0.9-55
loaded via a namespace (and not attached): [1] compiler_3.4.3
tools_3.4.3

Cannot Install Caret

I've been looking at StackOverflow forums like this and this but I cannot find a problem.
What I'm having an issue with is that I cannot install the caret package because the dependencies cannot be installed. I even tried to run install.packages("caret", dependencies = T) and that failed. I have also tried install.packages("caret", dependencies = c("Depends", "Suggests")) and it failed on installing rPython dependencies.
There seems to be issues saying that there is a configuration script and that I need to manually configure it.
I tried installing car, lme4, and other dependencies manually but only ggplot2 was able to be installed correctly. I have no idea what else to do, below is my session Info. Please help!
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] codetools_0.2-14
loaded via a namespace (and not attached):
[1] tools_3.2.2 data.table_1.9.6 chron_2.3-47
did you try downloading the packages manually from CRAN and installing them manually from Rstudio? Some of the packages require rebooting the Rstudio after package installation or after package inclusion in the Rscript. That worked for me..
also, try installing different versions of the packages until one of them works for your case..that's what I did in the case of "ggvis package

Error in R data.table v1.9.6 - function "fread"

I recently updated to data.table 1.9.6 and get the following error when using fread:
fread("Aug14.csv")
Error in fread("Aug14.csv") :
4 arguments passed to .Internal(nchar) which requires 3
Another post discusses this error in another context, but this worked fine prior to upgrading to data.table 1.9.6. Any advice?
Here's my set up:
sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.9.6 Matrix_1.2-2
loaded via a namespace (and not attached):
[1] modeltools_0.2-21 tools_3.2.0 splines_3.2.0 grid_3.2.0 chron_2.3-47 stats4_3.2.0 lattice_0.20-33
This seems to be a wider problem affecting other packages too and something similar was raised on r-devel here :
http://r.789695.n4.nabble.com/Error-generated-by-Internal-nchar-disappears-when-debugging-td4713138.html
If I understand correctly, CRAN provides one Windows binary for the R 3.2.* series. I guess this binary is built using the latest version of R in that series, currently R 3.2.2. As Andriy T. pointed out in a comment here, the base R function nchar gained an extra argument in R 3.2.1. Since data.table uses the R function nchar and it sets ByteCompile:TRUE in its DESCRIPTION file, the CRAN binary package for Windows doesn't seem to be compatible with R 3.2.0. I guess binary incompatible changes to R itself are supposed to be made to the .0 version only for this reason, but I'm not sure on that. Where packages are compiled on install (e.g. Ubuntu) this isn't an issue.
If you are using R < 3.2.0 on any platform, there shouldn't be a problem.
If you are using R >= 3.2.1 on any platform, there shouldn't be a problem.
If you are using R 3.2.0 on Windows and installing the binary .zip from CRAN (i.e. the default method) then you'll need to either upgrade to R >= 3.2.1, or, build data.table (and potentially any other package using nchar that also set ByteCompile:TRUE) yourself using Rtools.

Resources