这是我的第一篇文章 - 到目前为止,我仅通过浏览就从社区学到了很多东西,我对此表示感谢,谢谢。然而,对于这个我完全陷入困境。我对 R 和编程还是新手,虽然我在分析和统计方面非常成功,但我缺乏计算机科学知识。
我的情况很特殊:我正在尝试在一台有很多限制的公司笔记本电脑上设置 R 和 R Studio,其中之一是限制互联网访问。我需要开始安装软件包,但由于互联网流量受到限制,我无法以通常的方式进行安装。为此,我已在另一台计算机上下载了所需的所有内容,并打算将其本地安装在受限制的笔记本电脑上。使用 dplyr 及其依赖项(目前只有两个)作为示例:
#download packages on internet-enabled machine
packages <- c("dplyr", "generics", "glue")
files <- download.packages(pkgs = packages, destdir = getwd(), type = "win.binary")
files[,2]
[1] "dplyr_1.0.9.zip" "generics_0.1.3.zip" "glue_1.6.2.zip"
#transfer files to restricted laptop and install manually
install.packages(files[,2], repos = NULL, type = "win.binary")
当我尝试安装第一个和第三个包时出现错误(第二个安装正常):
package ‘dplyr’ successfully unpacked and MD5 sums checked
Error in install.packages : package ‘dplyr’ not installed because it is not built for UCRT
这些是我的 R 规格:
$platform
[1] "x86_64-w64-mingw32"
$arch
[1] "x86_64"
$os
[1] "mingw32"
$crt
[1] "ucrt"
$system
[1] "x86_64, mingw32"
$status
[1] ""
$major
[1] "4"
$minor
[1] "2.1"
$year
[1] "2022"
$month
[1] "06"
$day
[1] "23"
$`svn rev`
[1] "82513"
$language
[1] "R"
$version.string
[1] "R version 4.2.1 (2022-06-23 ucrt)"
$nickname
[1] "Funny-Looking Kid"
我知道我的R版本是URCT,即通用C运行时(CRT),但我什至不知道这在实践中意味着什么。我知道旧版本的 R 不是 URCT,安装它们可以解决问题,正如其他帖子中所建议的,例如
ROracle - 无法安装,因为“不是为 UCRT 构建”
install.packages 中出现错误:未安装软件包“RGtk2”,因为它不是为 UCRT 构建的
但是,我使用的R版本是我公司唯一认可的版本,我无法安装其他版本。
在这个版本的R中安装软件包似乎是不合理的,所以我肯定错过了一些重要的事情,因此寻求更多知识渊博的人的帮助。
非常感谢!
米哈乌
希望OP现在已经解决了这个问题。我能够从此链接找到一个简单且通用的解决方案: https://cran.r-project.org/bin/windows/base/howto-R-devel.html
我是这样看待问题的:你的 R 使用 UCRT,但你下载的二进制文件是为非 UCRT 编写的。修复方法是“从源代码”安装以强制 R 构建自己的二进制文件。这些二进制文件将从构建它们的 R 版本继承 UCRT 兼容性。
建议的解决方案如下:
install.packages("dplyr", type="source")
devtools::install_github("cran/dplyr")
将此推断到上面的代码片段,我建议尝试以下操作:
#download packages on internet-enabled machine
packages <- c("dplyr", "generics", "glue")
files <- download.packages(pkgs = packages, destdir = getwd(), type = "source") #Changed type to source
files[,2]
[1] "dplyr_1.0.9.tar.gz" "generics_0.1.3.tar.gz" "glue_1.6.2.tar.gz"
#transfer files to restricted laptop and install manually
install.packages(files[,2], repos = NULL, type = "source") #changed type to source