也有可能是因为它压根就不是一个包!
下面的报错写的明明白白:Can't find R package
> pak::pkg_install('cxli233/ggpathway')
! Using bundled GitHub PAT. Please add your own PAT using `gitcreds::gitcreds_set()`.
Error:
! error in pak subprocess
Caused by error:
! Could not solve package dependencies:
* cxli233/ggpathway: ! pkgdepends resolution error for cxli233/ggpathway.
Caused by error:
! Can't find R package in GitHub repo cxli233/ggpathway
Type .Last.error to see the more details.
如果大家认真看官网:https://github.com/cxli233/ggpathway
其实也写的明明白白,这是一个教程类型的笔记,并不是一个R包,既然并不是R包,怎么可能期待它能被安装呢?
在GitHub上发布R包时,需要遵循一定的结构和包含特定的文件。以下是一些必须的文件夹和文件,以及它们的功能:
**R/**:
这个文件夹包含R源代码文件,通常是 .R
或.S
文件,包含函数的定义。
**man/**:
包含函数的文档(R的帮助文件),通常是 .Rd
文件,描述函数的使用方法和参数。
**data/**:
如果包中包含数据集,它们应该放在这个文件夹中。
**inst/**:
包含安装时需要复制到包的安装目录的额外文件,如示例代码、数据文件等。
**src/**:
如果包包含C、C++或Fortran代码,它们应该放在这个文件夹中。
**tests/**:
包含测试脚本,用于检查包的功能是否正常。
**vignettes/**:
如果包提供教程或额外的用户指南,它们应该放在这个文件夹中。
DESCRIPTION:
描述包的元数据,包括包名、版本、作者、许可证、依赖关系等。
NAMESPACE:
定义包中导出的函数和变量。
README.md:
提供关于包的基本信息,如目的、安装说明和主要功能。
LICENSE 或 LICENCE.txt:
指定包使用的许可证。
.gitignore:
指定Git版本控制中忽略的文件和文件夹。
.travis.yml 或其他CI配置文件:
配置持续集成服务,如Travis CI。
codecov.yml:
配置代码覆盖率跟踪。
cran-comments.md:
如果提交到CRAN,这个文件包含CRAN检查员的评论和作者的回复。
**pkgdown/**:
如果使用 pkgdown
包来创建包的网站,这个文件夹包含网站生成的配置和资源。
**roxygen2/**:
如果使用 roxygen2
来生成文档,这个文件夹包含注释块。
这些文件和文件夹构成了R包的基本结构,确保包的功能性和可维护性。在发布之前,可以使用R CMD check
命令来检查包的完整性和一致性。
在GitHub上发布R包,虽然没有严格的规则,但遵循一些最佳实践和社区约定可以使你的包更加规范、易于使用和维护。以下是一些建议和最佳实践:
命名约定:
包名应该简洁、描述性强,并且避免与现有的R包冲突。
描述文件:
提供一个 DESCRIPTION
文件,其中包含包的名称、版本、作者、许可证、依赖关系等信息。
版本控制:
使用语义化版本控制(Semantic Versioning)来管理包的版本。
代码风格:
遵循一致的代码风格,如使用 styler
或lintr
来格式化代码。
函数文档:
为每个函数提供详细的文档,使用 roxygen2
自动生成文档。
依赖管理:
明确列出包的依赖关系,并在 DESCRIPTION
文件中指定。
测试:
编写单元测试,确保代码的可靠性和稳定性,可以使用 testthat
包。
示例代码:
提供示例代码,帮助用户理解如何使用你的包。
许可证:
为你的包选择一个合适的开源许可证,并在 LICENSE
文件中声明。
README文件:
提供一个 README.md
文件,介绍包的目的、安装方法、主要功能和使用示例。
遵循这些最佳实践不仅可以提高你的R包质量,还可以增加其他开发者和用户对你的包的信任。