标签: cran

如何处理不完善但有用的功能?

我同样可以提出这个问题,"这对CRAN来说是否足够好?"

我有一系列我为特定任务建立的功能.其中一些是便利功能:

# Returns odds/evens from a vector
odds=function(vec) {
    stopifnot(class(vec)=="integer")
    ret = vec[fpart(vec/2)!=0]
    ret
}
evens=function(vec) {
    stopifnot(class(vec)=="integer")
    ret = vec[fpart(vec/2)==0]
    ret
}
Run Code Online (Sandbox Code Playgroud)

有些是次要的补充,已经证明在回答常见的SO问题时非常有用:

# Shift a vector over by n spots
# wrap adds the entry at the beginning to the end
# pad does nothing unless wrap is false, in which case it specifies whether to pad with NAs
shift <- function(vec,n=1,wrap=TRUE,pad=FALSE) {
    if(length(vec)<abs(n)) { 
        #stop("Length of vector must be greater than the magnitude of n \n") …
Run Code Online (Sandbox Code Playgroud)

r package cran

13
推荐指数
2
解决办法
319
查看次数

检查从CRAN安装软件包的次数

有没有办法/地方我可以得到简单的指标

  1. 打包X的次数和/或
  2. 有多少用户安装了包X.

我最近在CRAN上发布了自己的软件包,我想稍微监控一下.

r cran

13
推荐指数
3
解决办法
4003
查看次数

在 R 包描述中添加引用的格式?

我刚刚向 CRAN 提交了一个 R 包。我收到了这条评论:

If there are references describing the methods in your package, please add these in the description field of your DESCRIPTION file in the form
authors (year) <doi:...>
authors (year) <arXiv:...>
authors (year, ISBN:...)
or if those are not available: <https:...>
with no space after 'doi:', 'arXiv:', 'https:' and angle brackets for auto-linking.
(If you want to add a title as well please put it in quotes: "Title") 
Run Code Online (Sandbox Code Playgroud)

但我认为该description字段仅限于一个段落,这意味着除了该字段中的单个段落之外,您不能包含其他文本。所以我不确定在描述字段中包含引用的确切格式是什么。我的猜测如下,但此格式返回一条注释,指出描述格式错误。

Description: Text describing the package, …
Run Code Online (Sandbox Code Playgroud)

r cran

13
推荐指数
1
解决办法
1495
查看次数

安装尚未安装的所有CRAN包?

以下R命令将安装所有CRAN包:

availablePackages <- available.packages()[,1]
install.packages(availablePackages)
Run Code Online (Sandbox Code Playgroud)

以下命令将列出所有已安装的软件包:

installedPackages <- .packages(all.available = TRUE)
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何指示R安装尚未安装的所有CRAN软件包?

r cran

12
推荐指数
2
解决办法
3万
查看次数

CRAN封装取决于Bioconductor封装安装错误

我管理了Depends,建议和导入描述文件.最后我提交了我的包裹CRAN.但是在安装包装时,它只安装存放在包装下CRANbioconductor包装.此外,它还具有Mac OS的程序包依赖性错误: 检查Mac OS的日志

可能是什么问题呢?我怎么能修好它?

亲切的问候,

r bioconductor cran

12
推荐指数
3
解决办法
2232
查看次数

testthat模式用于长时间运行的测试

我有一堆测试,我不希望它们在CRAN检查或Travis CI构建期间运行.它们要么长时间运行,要么可能导致写入网络数据库的事务/并发冲突.将它们分开的方法(来自R CMD检查测试)最适合测试吗?

我应该将这些测试放在单独的文件夹中吗?我应该标记他们的文件名并使用正则表达式吗?(例如,在test_package中使用filter参数跳过 @Jeroen的测试)

http://cran.r-project.org/web/packages/policies.html:

可以选择长时间运行的测试和插图代码进行检查,但确保剩下的检查确实可以执行包的所有功能.

r cran testthat

12
推荐指数
2
解决办法
1032
查看次数

如何从CRAN中提取所有包作者的名称

为了庆祝标签中的 100,000个问题,我想创建一个CRAN上所有包作者名称的列表.

最初,我认为我可以使用,available.packages()但遗憾的是,这不包含作者的专栏.

pdb <- available.packages()
colnames(pdb)

 [1] "Package"               "Version"               "Priority"             
 [4] "Depends"               "Imports"               "LinkingTo"            
 [7] "Suggests"              "Enhances"              "License"              
[10] "License_is_FOSS"       "License_restricts_use" "OS_type"              
[13] "Archs"                 "MD5sum"                "NeedsCompilation"     
[16] "File"                  "Repository"   
Run Code Online (Sandbox Code Playgroud)

DESCRIPTION每个包的文件中都提供了此信息.所以我可以想到两种蛮力方式,两者都不是很优雅:

  1. 下载每个6,878个软件包并DESCRIPTION使用读取文件base::read.dcf()

  2. 刮掉CRAN上的每个包页面.例如,https://cran.r-project.org/web/packages/MASS/index.html告诉我Brian Ripley是MASS的作者.

我不想下载所有CRAN来回答这个问题.而且我也不想刮HTML,因为DESCRIPTION文件中的信息是一个整齐格式的person对象列表(请参阅参考资料?person).

如何使用CRAN上的信息轻松构建包作者列表?

r cran

12
推荐指数
2
解决办法
325
查看次数

CRAN指出,如果没有安装"pandoc",就无法检查文件

在对CRAN包提交进行最终检查时,会出现以下注释:

* checking top-level files ... NOTE
Files ‘README.md’ or ‘NEWS.md’ cannot be checked without ‘pandoc’ being installed.
Run Code Online (Sandbox Code Playgroud)

但是,pandoc肯定是安装的,因为我经常使用它,这个包经常在文档中使用它pkgdown.

> rmarkdown::pandoc_available()
[1] TRUE
> rmarkdown::pandoc_version()
[1] ‘1.19.2.1’
Run Code Online (Sandbox Code Playgroud)

我想避免从源代码安装pandoc,因为最新版本的pandoc取代了与其他R软件包一起安装的版本并导致奇怪的输出.

几年前有一个类似的问题,但解决方案是:

  • 从源或通过installr包安装pandoc ,而我已经安装了pandoc; 和,
  • 将这两个文件放入.Rbuildignore,但现在两者都应该接受CRAN提交.

仅在使用devtools::release()和使用时检查此注释devtools::check(check_version = TRUE),否则通过时不会发出警告或注释.

Pandoc的RStudio安装:

Sys.getenv('RSTUDIO_PANDOC')
[1] "/Applications/RStudio.app/Contents/MacOS/pandoc"
Run Code Online (Sandbox Code Playgroud)

我以前导出到〜/ .bash_profile:

export PATH="$PATH:/Applications/Rstudio.app/Contents/MacOS/pandoc"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

> sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.2

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale: …
Run Code Online (Sandbox Code Playgroud)

r devtools cran pandoc r-markdown

12
推荐指数
1
解决办法
458
查看次数

将 R 包提交到 CRAN 时,指定了“LazyData”而没有“data”目录错误

当我在本地对我的包运行 devtools::check 时,我没有收到此错误,但是当我将我的包提交到 CRAN 或运行 devtools::check_win_devel 时,我收到此错误:

'LazyData' 没有指定 'data' 目录

大约一周前,我成功地将我的包提交给了 CRAN,但没有收到此错误,我更改的只是描述文件。

cran r-package

12
推荐指数
2
解决办法
787
查看次数

被 testthat 和skip_on_cran()搞糊涂了

tl;dr我想devtools::test()在一个包上运行并让它跳过测试等,就像它在 CRAN 上运行一样,但我不知道如何操作。

据我了解,testthat::skip_on_cran()检查环境变量NOT_CRAN,如果测试未CRAN 上运行,则应将其设置为“true”值(为了支持这一点,底层测试函数testthat:::on_cran()等于

!identical(Sys.getenv("NOT_CRAN"), "true")
Run Code Online (Sandbox Code Playgroud)

我试图用来skip_on_cran()跳过一些测试。我想确认CRAN 上实际上会跳过这些测试。我有一条线

cat("ON CRAN:", testthat:::on_cran(), "\n")
Run Code Online (Sandbox Code Playgroud)

在我的测试文件中,以便我可以看到 R/testthat认为发生了什么。

如果我使用,环境变量会按照我想要的方式设置(即输出包括ON CRAN: FALSE)/测试被正确跳过)

source([testfile], echo = TRUE)
Run Code Online (Sandbox Code Playgroud)

NOT_CRAN(即,无需预先执行任何特殊操作来设置或取消设置环境变量)或

withr::with_envvar(c(NOT_CRAN = "false"), 
    devtools::test_active_file("tests/testthat/test-bootMer.R"))
Run Code Online (Sandbox Code Playgroud)

(如果我运行时test_active_file()没有包装它,我会得到ON CRAN: FALSE)。

但是,我没有看到devtools::test()以类似的方式运行所有测试(通过)的方法。换句话说,我不知道如何devtools::test()在“ON CRAN”模式下运行。 test()对此没有明确的参数(它有...“传递给包装函数的附加参数”,但我看不到任何相关的向下挖掘),并且使用withr::with_envvar()似乎没有帮助。devtools::check() 确实有一个明确的env_vars参数,但我希望能够运行测试而无需经历整个包检查过程......

抱歉,这不能完全重现;如果需要,我可以尝试构建一个最小的包来显示行为......

r devtools cran testthat

12
推荐指数
1
解决办法
505
查看次数

标签 统计

cran ×10

r ×9

devtools ×2

testthat ×2

bioconductor ×1

package ×1

pandoc ×1

r-markdown ×1

r-package ×1