从R Archive下载USAboundaries包时遇invalid octal digit错误求助
解决R包USAboundaries安装时的"invalid octal digit"错误
问题重现
尝试下载并安装USAboundaries包时出现以下错误:
install.packages(pkgs=pkgFile, type="source", repos=NULL) Error in getOctD(x, offset, len) : invalid octal digit Warning in install.packages : installation of package ‘USAboundaries_0.4.0.tar.gz’ had non-zero exit status
执行的代码如下:
url <- "https://cran.r-project.org/web/packages/USAboundaries/index.html" pkgFile <- "USAboundaries_0.4.0.tar.gz" download.file(url = url, destfile = pkgFile) install.packages(pkgs=pkgFile, type="source", repos=NULL)
另外,该版本包的描述中未明确列出依赖项。
错误原因
- 下载文件错误:你下载的是CRAN上的包说明网页(
index.html),而非实际的源码包文件(.tar.gz),导致安装程序试图解析HTML文件为压缩包,触发"invalid octal digit"错误。 - 依赖缺失:USAboundaries依赖多个空间处理和数据处理包,即使描述未列出,缺少这些依赖也会导致安装失败。
解决方案
1. 提前安装依赖包
USAboundaries 0.4.0的核心依赖包括:sf、dplyr、stringr、tibble、ggplot2,先执行安装:
install.packages(c("sf", "dplyr", "stringr", "tibble", "ggplot2"))
2. 正确下载并安装包
替换原代码中的下载链接为源码包的直接地址,执行下载和安装:
url <- "https://cran.r-project.org/src/contrib/Archive/USAboundaries/USAboundaries_0.4.0.tar.gz" pkgFile <- "USAboundaries_0.4.0.tar.gz" download.file(url = url, destfile = pkgFile, mode = "wb") install.packages(pkgs=pkgFile, type="source", repos=NULL)
替代方案:直接从CRAN归档安装
如果网络允许,可直接使用install.packages指定归档源安装,无需手动下载:
install.packages("USAboundaries", repos="https://cran.r-project.org/src/contrib/Archive/")
内容的提问来源于stack exchange,提问作者D. Robert
相关产品推荐
相关产品推荐

