我渴望将两个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.有没有办法压缩数据集甚至更小?
我正在开发的包中的一个函数使用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.html,http://kbroman.org/pkg_primer/pages/docs.html和https://cran.r-project.org /doc/manuals/r-release/R-exts.html#Data-in-packages,但它们不包括有关从一个包到另一个包共享数据集的任何信息。
基本上,我如何制作另一个包中的函数所需的数据集,供我的包中的函数使用?
包提供某种类型的演示应用程序似乎是一个很好的做法,所以我只是想知道组织文件结构的最干净的方法是什么?
我想要一个 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 可以指定要使用的分支,但不能指定子目录。
我正在开发一个 R 包,其中一个依赖包是 multtest。它仅在 Bioconductor 上可用,如下所示。我正在使用devtools来构建包。而且,当我在 R 控制台上运行devtools::install()时,我希望multtest能够像我的其他 CRAN 软件包一样自动安装(如果尚未安装)。我确实知道如何手动安装 Bioconductor 软件包。
以下链接建议我应该放置
biocViews:
Run Code Online (Sandbox Code Playgroud)
在包的描述文件中,用于自动安装 Bioconductor 包。
biocViews:在上面的行中(我Imports:不确定它放在哪里同样重要?)并且要安装的 Bioconductor 包放在Imports:下面
biocViews:在上面的行中Imports:,要安装的 Bioconductor 包就放在 like 之后biocViews: multtest。这个确切的答案位于 Vivekbhr 回复 Vivian 的未投票线程的末尾,如下所示
我还跟进并检查了依赖 Bioconductor 的软件包的描述文件,如下所示
我遵循了这些研究解决方案,将 multest 与biocViews:、 下面biocViews:、之下放在一起Imports:。所有这些都返回了包依赖性或包未找到错误,如下图所示。
然后,我手动重新安装了 multtest,它就可以工作了。但是,我仍然希望拥有Imports哈德利书中的章节中提到的自动安装功能,如下 …
我想听听人们如何在 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 的机器上适当有效地检查反向依赖关系?
我编写了一个 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) 我一直在my_pkg使用最新版本(4.1.1)的 R Studio 在 RStudio 中开发一个带有小插图的专有软件包(称之为“”)。我正在使用以下软件的 Lenovo ThinkPad 进行工作
sysname release version machine\n "Windows" "10 x64" "build 19043" "x86-64"\nRun Code Online (Sandbox Code Playgroud)\n由 提供Sys.info()。
直到最近,我的工作流程还相当顺利(偶尔有例外)。然而,我开始遇到一个非常令人费解的错误,当工作流程顺利进行时,该错误是在与之前几乎相同的条件下发生的。devtools
尽管我的小插图以前总是成功构建的,而且我没有同时编辑它们,但现在由于架构上的特定原因,构建失败了......
\nError : package \'my_pkg\' is not installed for \'arch = x64\'\nRun Code Online (Sandbox Code Playgroud)\n...当且仅当我在构建中包含小插图时。
\n我已经从头开始重新安装了 R (以及 Rtools 和 RStudio),重新安装了devtools(及其依赖项),并将我的项目“倒回”到最后一次成功的Git 提交devtools::check()。我还与@SteffenMoritz和@Alexis等响应者进行了广泛的故障排除,我已在Info by Request部分中为他们附加了更多信息。
不幸的是,没有任何效果。
\n …我想使用一个数组,比如aaa,作为内部数据devtools::use_data( aaa,internal =TRUE)。
但是这个命令只生成一个文件sysdata.rda。为什么 ?为什么不允许存在多个内部数据文件?
我也无法理解内部 =TRUE 和 FALSE 之间的区别。
我使用的动机internal =true是我的包中函数的某些变量的默认值。我想使用一些数组作为默认值,我的包的用户不需要这个默认值,因此我认为该数组应该作为internal =TRUE. 这种态度正确吗?
而 R 表示使用usethis::use_data()而不是devtools::use_data(). 为什么 ???
REF: R 包:写入内部数据,但不是一次全部写入
我有一个类似但不同的问题,当我的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的方式编写代码的正确方法?
最好,迈克尔
我目前正在为我的博士学位开发一个包,其中包含我的项目的数据分析功能。设置为Windows 10,所有文件都保存在PC本地并同步到One Drive。
我能够构建我的包并且也能够检查它。然而,我关闭了 R Studio,现在(几天后)我想再次处理它(不更改之前运行的代码,错误、警告和注释为 0),但它不起作用。我仍然可以毫无错误地构建我的包,但我无法使用 devtools::check 来检查它。devtools::check 的输出是:
在 Windows 文件资源管理器上,我注意到包内(名称 eEP.Analysis.V2)有一个 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包只有一个任务,roxygen2与devtools我做休息。
我想要
如果 x <- c(1, 2) 我想要这样的格式。
ss sss sss
3 5 9
只用包中的一个函数。
请说明您在输出中使用的向量。