如何在R脚本中调用Fork后自定义修改的GitHub R包版本
R调用个人Fork修改后的GitHub R包实现方案
你预期的library(username/textshaping)这种带用户名前缀的加载语法R原生并不支持,但是有两种稳定可落地的方式,完全可以满足你使用自定义修改版本包的需求:
- 直接覆盖安装自定义版本(最常用,适合不需要同时保留官方原版的场景)
先安装通用的GitHub R包安装工具remotes,在R控制台执行:install.packages("remotes")
安装完成后,替换下方命令中的username为你自己的GitHub账号名,直接安装你Fork后修改的仓库即可:remotes::install_github("username/textshaping")
注意:如果本地此前已经安装过CRAN官方版本的textshaping,这条命令会直接将其覆盖为你修改的自定义版本。后续加载、调用包的方式和使用普通CRAN包完全一致:
如果后续需要切回官方版本,直接执行# 加载自定义版本的包 library(textshaping) # 调用内置函数 text_width("Seven sea's seacod") # 也可以用::显式指定包调用 textshaping::text_width("Seven sea's seacod")install.packages("textshaping")从CRAN安装覆盖即可。 - 重命名自定义包实现多版本共存(适合需要同时使用官方版和修改版的场景)
如果不想覆盖本地的官方原版包,可以先进入你Fork的仓库,修改包根目录下DESCRIPTION文件的Package字段,比如把原有的Package: textshaping改成Package: textshaping_modded,提交修改后再用remotes::install_github("username/textshaping")安装,就能实现两个版本共存,调用时可以明确区分:# 加载官方CRAN版本 library(textshaping) # 加载你修改的自定义版本 library(textshaping_modded) # 分别调用两个版本的同名函数 textshaping::text_width("test string") textshaping_modded::text_width("test string")
你之前查阅的githubinstall包核心逻辑也是拉取GitHub上的R包源码完成本地安装,和remotes的实现逻辑没有本质差异,不需要额外依赖该包也能完成上述操作。
内容的提问来源于stack exchange,提问作者Ranji Raj
相关产品推荐
相关产品推荐

