标签: package-development

如何在R包中保存非常大的.rda文件

我渴望将两个460 x 5000数字矩阵保存到我的R包中.按照以下说明操作: 如何在打包检查期间有效处理未压缩的保存? 我将对象保存为:

save(mat1,file="mat1.rda",compress="xz")
save(mat2,file="mat2.rda",compress="xz")
Run Code Online (Sandbox Code Playgroud)

但是,生成的R对象非常大(8.7MB和8.9 MB),R CMD CHECK --as-cran给了我注释:

 * checking installed package size ... NOTE
   installed size is 20.1Mb
   sub-directories of 1Mb or more:
   data  20.0Mb
Run Code Online (Sandbox Code Playgroud)

根据我的理解,不能向CRAN提交R包,这些包没有"通过"(即没有注意也没有警告)R CMD CHECL --as-cran.有没有办法压缩数据集甚至更小?

r package-development

5
推荐指数
1
解决办法
1293
查看次数

如何从我的包中的另一个包加载数据

我正在开发的包中的一个函数使用acs::包(fips.state对象)中的数据集。我可以通过以下方式将这些数据加载到我的工作环境中

data(fips.state, package = "acs"),
Run Code Online (Sandbox Code Playgroud)

但我不知道为我的函数加载这些数据的正确方法。我试过了

 @importFrom acs fips.state,
Run Code Online (Sandbox Code Playgroud)

但不会导出数据集。我不想复制数据并将其保存到我的包中,因为这似乎是一种糟糕的开发实践。

我都对着http://r-pkgs.had.co.nz/namespace.htmlhttp://kbroman.org/pkg_primer/pages/docs.htmlhttps://cran.r-project.org /doc/manuals/r-release/R-exts.html#Data-in-packages,但它们不包括有关从一个包到另一个包共享数据集的任何信息。

基本上,我如何制作另一个包中的函数所需的数据集,供我的包中的函数使用?

r package-development

5
推荐指数
1
解决办法
765
查看次数

如何使用演示应用程序创建 npm 包?

包提供某种类型的演示应用程序似乎是一个很好的做法,所以我只是想知道组织文件结构的最干净的方法是什么?

我想要一个 github 存储库,其中包含我发布的 NPM 模块和一个简单的演示 Web 应用程序。

理想情况下,我想要一个顶级的,例如:

package/
demo/
Run Code Online (Sandbox Code Playgroud)

并将代码package/分发到 NPM。我可以使用package.json文件选项,例如

files: [ 'package' ]
Run Code Online (Sandbox Code Playgroud)

但随后所有代码都将使用该路径前缀进行分发,例如

node_modules/MyPackageName/package/index.js
Run Code Online (Sandbox Code Playgroud)

有没有办法修改路径前缀,以便更改顶级目录并删除package/我用来组织文件的额外内容?

当然其他人有办法做到这一点,但我不想使用两个存储库 - 一个演示和一个包。

澄清我希望能够直接从 github 安装软件包,作为一种“穷人的私人 NPM”。所以我不想只从“package”目录中发布。我认为使用 github URL 可以指定要使用的分支,但不能指定子目录。

javascript npm package-development

5
推荐指数
1
解决办法
516
查看次数

Bioconductor 软件包未按照软件包描述部分中的 biocViews 规范进行安装

问题:

我正在开发一个 R 包,其中一个依赖包是 multtest。它仅在 Bioconductor 上可用,如下所示。我正在使用devtools来构建包。而且,当我在 R 控制台上运行devtools::install()时,我希望multtest能够像我的其他 CRAN 软件包一样自动安装(如果尚未安装)。我确实知道如何手动安装 Bioconductor 软件包。

研究解决方案:

以下链接建议我应该放置

biocViews:
Run Code Online (Sandbox Code Playgroud)

在包的描述文件中,用于自动安装 Bioconductor 包。

  1. biocViews:在上面的行中(Imports:不确定它放在哪里同样重要?)并且要安装的 Bioconductor 包放在Imports:下面

  2. biocViews:在上面的行中Imports:,要安装的 Bioconductor 包就放在 like 之后biocViews: multtest。这个确切的答案位于 Vivekbhr 回复 Vivian 的未投票线程的末尾,如下所示

我还跟进并检查了依赖 Bioconductor 的软件包的描述文件,如下所示

尝试过的解决方案:

我遵循了这些研究解决方案,将 multest 与biocViews:、 下面biocViews:、之下放在一起Imports:。所有这些都返回了包依赖性或包未找到错误,如下图所示。

  1. 在线生物视图
  2. 分离线生物视图
  3. 导入下的生物视图

然后,我手动重新安装了 multtest,它就可以工作了。但是,我仍然希望拥有Imports哈德利书中的章节中提到的自动安装功能,如下 …

r devtools bioconductor cran package-development

5
推荐指数
1
解决办法
562
查看次数

包反向依赖检查(尤其是在 Windows 上)

我想听听人们如何在 Windows 上进行反向依赖检查。

当使用tools::check_packages_in_dir()Windows 上的 CRAN 存储库策略 [1] 建议的“官方”但实验性功能时,会根据其来源检查反向依赖关系,即所有内容都将被编译。即使对于相对较少的依赖项/建议的包,这也可能需要很长时间。接下来,这不是很方便,因为我在此过程中遇到了很多丢失的包,因此测试出错,我需要安装丢失的包并重新开始......

我曾经使用devtools::revdep_checkwhich 很方便,因为它使用 Windows 二进制文件进行检查,所以没有时间花在编译上,而且它提供了一个很好的处理。然而,它与2.0版本,这一功能不应住里面决定devtools了,但应被移动到专用包(revdepcheck,被用于devtools通过中介包use_this),这是不提供CRAN但并不会在其发展资源库建设. 这种实际上已经不复存在的状态devtools似乎已经持续了一年多(revdepcheck最近才开发了一些新活动)。

(编辑:我还应该提到,devtools在删除反向依赖项检查功能之前使用的版本似乎会产生任意错误,因此这似乎也不是一个选项。)

我没有发现任何其他似乎可行的方法。所以我想知道,如今如何在基于 Windows 的机器上适当有效地检查反向依赖关系?

[1] https://cran.r-project.org/web/packages/policies.html

r devtools package package-development

5
推荐指数
0
解决办法
326
查看次数

我的 NPM CLI 包可以在 CMD 上执行而无需全局安装吗?

我编写了一个 NPM 包,它有自己的 CLI 命令。

让我们将该包命名为xyz并想象它现在可以在npmjs.com上使用

因此,假设用户通过运行 来在他的项目中安装这个包npm install xyz

现在他想xyz在他的项目中的终端上运行 package 提供的 CLI 命令。

xyz do_this

用户可以在不全局安装此软件包的情况下完成此操作吗?或者不需要用户进行任何进一步的配置?

package.json这是xyz 包的一些部分。

{
  "name": "xyz",
  "version": "1.0.0",
  "description": "Description",
  "main": "index.js",
  "preferGlobal": true,
  "bin": "./index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
........
Run Code Online (Sandbox Code Playgroud)

javascript node.js npm package-development npx

5
推荐指数
1
解决办法
1823
查看次数

构建我未更改的包突然失败:对于 Vignettes 和 'arch = x64'

语境

\n

我一直在my_pkg使用最新版本(4.1.1)的 R Studio 在 RStudio 中开发一个带有小插图的专有软件包(称之为“”)。我正在使用以下软件的 Lenovo ThinkPad 进行工作

\n
       sysname        release        version       machine\n     "Windows"       "10 x64"  "build 19043"      "x86-64"\n
Run Code Online (Sandbox Code Playgroud)\n

由 提供Sys.info()

\n

直到最近,我的工作流程还相当顺利(偶尔有例外)。然而,我开始遇到一个非常令人费解的错误,当工作流程顺利进行时,该错误是在与之前几乎相同的条件下发生的。devtools

\n

尽管我的小插图以前总是成功构建的,而且我没有同时编辑它们,但现在由于架构上的特定原因,构建失败了......

\n
Error : package \'my_pkg\' is not installed for \'arch = x64\'\n
Run Code Online (Sandbox Code Playgroud)\n

...当且仅当我在构建中包含小插图时。

\n

我已经从头开始重新安装了 R (以及 Rtools 和 RStudio),重新安装了devtools(及其依赖项),并将我的项目“倒回”到最后一次成功的Git 提交devtools::check()我还与@SteffenMoritz@Alexis等响应者进行了广泛的故障排除,我已在Info by Request部分中为他们附加了更多信息。

\n

不幸的是,没有任何效果。

\n …

64-bit r build devtools package-development

5
推荐指数
1
解决办法
1092
查看次数

devtools::use_data( , 内部 =TRUE)

我想使用一个数组,比如aaa,作为内部数据devtools::use_data( aaa,internal =TRUE)

但是这个命令只生成一个文件sysdata.rda。为什么 ?为什么不允许存在多个内部数据文件?

我也无法理解内部 =TRUE 和 FALSE 之间的区别。

我使用的动机internal =true是我的包中函数的某些变量的默认值。我想使用一些数组作为默认值,我的包的用户不需要这个默认值,因此我认为该数组应该作为internal =TRUE. 这种态度正确吗?

而 R 表示使用usethis::use_data()而不是devtools::use_data(). 为什么 ???

REF: R 包:写入内部数据,但不是一次全部写入

r package-development

3
推荐指数
1
解决办法
1234
查看次数

在我的软件包中使用ddply时,如何摆脱R CMD检查生成的NOTE?

我有一个类似但不同的问题,当我的ggplot2语法合理时,如何处理R CMD检查"没有可见的全局变量绑定"注释?.

在那种情况下,通过使用aes_string而不是aes,一切都顺利进行.然而,这与plyr afaik无法实现.

例如,当我通过ddply引用数据框中的列名时会出现问题.

ddply(mydf, .(VarA, VarB, VarC, VarD), summarize, sum = sum(VarE))
#
# MyPackage: no visible binding for
#   global variable ‘VarA’
Run Code Online (Sandbox Code Playgroud)

这段代码是完全有效和理智的,即使我理解使用NOTE,它们仍然会混淆输出窗口中的其他消息,使得包开发变得困难,并且实际上强制开发人员忽略NOTE.

摆脱这些笔记的正确方法是什么?或者替代方案是什么是以R CMD检查接受而不给出NOTE的方式编写代码的正确方法?

最好,迈克尔

warnings r plyr package-development r-package

2
推荐指数
1
解决办法
135
查看次数

devtools::check - 系统命令“Rcmd.exe”失败,退出 stauts:1,stdout + stderr:

我目前正在为我的博士学位开发一个包,其中包含我的项目的数据分析功能。设置为Windows 10,所有文件都保存在PC本地并同步到One Drive。

我能够构建我的包并且也能够检查它。然而,我关闭了 R Studio,现在(几天后)我想再次处理它(不更改之前运行的代码,错误、警告和注释为 0),但它不起作用。我仍然可以毫无错误地构建我的包,但我无法使用 devtools::check 来检查它。devtools::check 的输出是:

在此输入图像描述

在 Windows 文件资源管理器上,我注意到包内(名称 eEP.Analysis.V2)有一个 R 项目文件夹,其中锁定文件未同步,如下所示:

在此输入图像描述 有没有可能这就是问题的原因?我怎样才能解决这个问题?

非常感谢您的帮助。

lockfile r devtools package-development onedrive

2
推荐指数
1
解决办法
4166
查看次数

当我有多个函数来执行复合任务时,如何编写 R 包文档?

我有以下 R 函数,我想用它们来获取任何数值向量的总和、平方和和立方和:

功能更正

ss <- function(x){
  `%dopar%` <- foreach::`%dopar%`
  foreach::foreach(i = x, .combine = "+") %dopar% {i}
}
sss <- function(x){
  `%dopar%` <- foreach::`%dopar%`
  foreach::foreach(i = x, .combine = "+") %dopar% {i^2}
}

ssq <- function(x){
  `%dopar%` <- foreach::`%dopar%`
  foreach::foreach(i = x, .combine = "+") %dopar% {i^3}
}
Run Code Online (Sandbox Code Playgroud)

我想产生向量的总和,向量的平方和和相同向量的立方的总和。我希望它在我只运行一个函数时打印三个结果,并将包含在 R 包文档中。

我知道如何通过记录将R文件夹及其文件,并说明文件,而只用一个函数编写的R包只有一个任务,roxygen2devtools我做休息。

我想要

如果 x <- c(1, 2) 我想要这样的格式。

ss sss sss

3 5 9

只用包中的一个函数。

请说明您在输出中使用的向量。

r package-development r-package

2
推荐指数
1
解决办法
216
查看次数