我有一个从GitHub repo克隆的R库,我想修改它。但是,我从来没有从CRAN以外的地方构建和导入过一个库。我该怎么做呢?
zu0ti5jz1#
如果你想在编译前修改代码,那么install_github()将无法工作。你应该把git repo克隆到你机器上的一个目录下,然后运行:
install_github()
install.packages("devtools") library(devtools) build("~/put/the/package/path/here")
如果您使用的是RStudio,您可以使用克隆和修改的源代码创建自己的包,如here所述。
neskvpey2#
@GregorThomas评论太重要了,我觉得需要澄清。在你构建了你的软件包之后,你仍然需要安装它。运行devtools::build返回你需要安装的tar.gz文件的位置。因此你可以将它赋给一个变量并将它传递给devtools::install_local。传递给devtools::build的路径应该是包含DESCRIPTION文件的文件夹。请注意,如果您想派生/克隆一个存储库并为您的版本命名,您可以更改DESCRIPTION文件中的Package值,这个新名称就是您传递给library()的名称
devtools::build
tar.gz
devtools::install_local
DESCRIPTION
Package
library()
install.packages("devtools") library(devtools) my_cloned_library_build = devtools::build("~/put/the/package/path/here") devtools::install_local(my_cloned_library_build) library(my_cloned_library)
pqwbnv8z3#
如果您想从命令行完成所有操作,请尝试以下操作:
git clone https://github.com/user/repo.git R -e "install.packages('devtools');devtools::install('path/to/package')"
用克隆包的路径替换path/to/package,注意如果你使用Ubuntu,你可能需要先安装these系统库。
path/to/package
3条答案
按热度按时间zu0ti5jz1#
如果你想在编译前修改代码,那么
install_github()
将无法工作。你应该把git repo克隆到你机器上的一个目录下,然后运行:如果您使用的是RStudio,您可以使用克隆和修改的源代码创建自己的包,如here所述。
neskvpey2#
@GregorThomas评论太重要了,我觉得需要澄清。
在你构建了你的软件包之后,你仍然需要安装它。运行
devtools::build
返回你需要安装的tar.gz
文件的位置。因此你可以将它赋给一个变量并将它传递给devtools::install_local
。传递给
devtools::build
的路径应该是包含DESCRIPTION
文件的文件夹。请注意,如果您想派生/克隆一个存储库并为您的版本命名,您可以更改
DESCRIPTION
文件中的Package
值,这个新名称就是您传递给library()
的名称pqwbnv8z3#
如果您想从命令行完成所有操作,请尝试以下操作:
用克隆包的路径替换
path/to/package
,注意如果你使用Ubuntu,你可能需要先安装these系统库。