在R中加载GAPIT、FarmCPU资源报错无法打开连接如何解决?
问题复现
运行加载代码后报错:
Error in file(filename, "r", encoding = encoding) : cannot open the connection
In addition: Warning message: In file(filename, "r", encoding = encoding) : InternetOpenUrl failed: 'The hostname of this certificate does not is valid or does not match'
核心原因
R默认开启SSL证书校验,目标站点原HTTP链接已强制跳转HTTPS,但站点SSL证书配置不符合R的校验规则,导致网络连接被拦截,无法拉取在线脚本。
可行解决方法
- 方法1:临时关闭SSL校验后在线加载
先调整R的全局下载参数临时跳过SSL校验,加载完成后恢复默认规则避免后续安全风险,代码如下:# 配置下载参数,跳过SSL校验 options(download.file.method = "libcurl") options(download.file.extra = "-k") # 使用HTTPS协议加载资源 source("https://www.zzlab.net/GAPIT/emma.txt") source("https://www.zzlab.net/GAPIT/gapit_functions.txt") source("https://www.zzlab.net/FarmCPU/FarmCPU_functions.txt") # 恢复默认SSL校验规则 options(download.file.extra = "") - 方法2:手动下载资源到本地加载
网络不稳定的情况下可以直接将三个脚本文件下载到R的当前工作目录(可通过getwd()命令查看本地工作目录路径),之后直接读取本地文件即可,无需走网络请求:# 加载本地脚本 source("emma.txt") source("gapit_functions.txt") source("FarmCPU_functions.txt") - 方法3:直接安装打包好的GAPIT包
新版GAPIT已经整合了FarmCPU功能,不需要单独在线加载零散函数脚本,提前安装好所有依赖包后直接安装GAPIT离线包,后续调用时直接加载包即可:# 先安装依赖包 install.packages(c("mlmm", "gplots", "LDheatmap", "genetics", "ape", "EMMREML", "scatterplot3d")) # 安装完成后加载GAPIT包 library(GAPIT)
内容的提问来源于stack exchange,提问作者Reberth Renato da Silva
相关产品推荐
相关产品推荐

