我正在尝试在 Windows 环境中使用“RStudio”和“devtools”来构建一个包含编译C代码的包。R
只有其中一个函数使用文件夹C中的代码src。源码包运行良好。我可以使用所有功能。我能够使用编译 C 代码,devtools::document()并且相应的.dll文件.o也出现在src文件夹中。dev_tools::load_all然后我可以使用or加载代码Ctrl+Shift+L并运行所有函数。
但是,当我使用 构建和重新加载包时Ctrl+Shift+B,我无法使用特定的功能。即使保留了文档,该功能也从包中丢失了。我还收到错误消息,提示.dll未加载相应的内容。
Error in library.dynam.unload(name, system.file(package = name)) : \n DLL \xe2\x80\x98mypackage.dll\xe2\x80\x99 was not loaded\nRun Code Online (Sandbox Code Playgroud)\n\n当我使用devtools::buildwith时,我得到相同的结果binary=TRUE。
.dll不过我可以在库中找到该文件Documents\\R\\win-library\\3.0\\mypackage\\libs\\i386\\mypackage.dll。为什么编译代码中的动态库没有被加载?
PS:1)devtools::has_devel()给出TRUE\n 2)我被迫使用.C而不是.Call.
这是结果R CMD INSTALL
* installing to library 'C:/Users/lenovo/Documents/R/win-library/3.0'\n* …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 R 包并尝试使用编写 R 扩展.install_extras中描述的功能。该文档指出:“要安装 vignettes 目录中的任何其他文件,请包含一个文件 vignettes/.install_extras,该文件将这些文件指定为一行或多行上的类似 Perl 的正则表达式。”
我已经创建了这个文件,它包含以下一行。
myfile.png
Run Code Online (Sandbox Code Playgroud)
png 文件存在于 vignettes 目录中,但是当我使用安装包时devtools::install(),该文件不会复制到安装的 doc/ 文件夹(或开发目录的 inst/doc)。
我已经检查了 Github 上使用此功能的各种软件包(例如Rcppzigguart),据我所知,它应该可以工作。
有任何想法吗?这是 R 3.1.0 的情况。
我正在使用 devtools 构建 R 包。所有文档都是使用 roxygen2 构建的。对于这些功能来说,这一切都很好,但是我如何为整个包提供一个帮助页面,其中列出了所有可用的功能。
在其他软件包中,每个帮助页面的底部始终有一个指向索引页面的链接:
如何使用 devtools 构建/链接此索引页面?
编辑:如果我通过“?functionName”访问帮助页面,还会将以下输出打印到控制台“使用 functionName 的开发文档”。从 devtools 的 github 存储库中,我找到了 提供此输出的函数 dev-help.R 。在其评论中指出,链接不适用于此开发帮助。
请注意,这仅呈现单个文档文件,因此到包内其他文件的链接将不起作用。
那么如何使用普通文档而不是 dev-help 呢?
我正在使用 RStudio 为我正在进行的数据分析创建一个包。为了将我的原始数据放入包中,我devtools::use_data_raw()按照本文使用。
我有一个脚本load-raw-data.R,可以加载原始数据并将其组装到数据帧中,然后调用devtools::use_data()该数据帧将其添加到包中。根据文章,load-raw-data.R不在 中/data-raw。/R我已通过框架向该脚本中的函数添加了文档roxygen2,但是当我构建文档时,.Rd并未构建这些函数的文件。我认为这是因为 roxygen2 只查找/R. 有没有办法告诉也可以roxygen2查看?/data-raw或者我一路上误解了什么?
更新:遵循@phil的建议
@phil - 谢谢 - 我尝试了脚本中的其中一个函数 ( load_data_files) load-raw-data.R(请参阅下面添加到 R/data.R 的文档),但在重建包时出现错误:'load_data_files' is not an exported object from 'namespace:clahrcnwlhf'。我已将该@export标签包含在R/data.R. 关于如何解决这个问题有什么想法吗?
`# This script loads the individual component files of the raw dataset
# and stitches them together, saving the result as …Run Code Online (Sandbox Code Playgroud) 所以我对网页上的文字进行了一些修改。它被保存为覆盖。当我打开 F12 菜单时它们就可以工作;并在刷新和第一次访问该网站时坚持下去。
但如果 F12 菜单关闭,我的更改将不会显示,直到我打开菜单并刷新页面。
即使 F12 菜单关闭,如何使覆盖显示?
感谢任何帮助。
在 Chrome 开发工具中,我似乎无法选择使用键盘选择设备。当点击 Chrome 工具中的“旋转”按钮时,它只是旋转设备模式(横向、垂直)。然而,似乎它必须提供一个选项来选择设备是否有虚拟键盘。
我正在开发一个 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 的机器上适当有效地检查反向依赖关系?
我非常绝望install.packages("devtools")。但是它总是因这个错误而失败
Error: .onLoad failed in loadNamespace() for 'pkgload', details:
call: readRDS(nsInfoFilePath)
error: error reading from connection
Execution halted
ERROR: lazy loading failed for package ‘devtools’
* removing ‘/home/bjoern/R/x86_64-pc-linux-gnu-library/3.6/devtools’
Run Code Online (Sandbox Code Playgroud)
我试图解决这个问题的事情:
dependencies = T参数install.packages("pkgload")导致几乎完全相同的错误(见下文)install.packages("pkgload") 错误
Error: package or namespace load failed for ‘pkgload’:
.onLoad failed in loadNamespace() for 'pkgload', details: …Run Code Online (Sandbox Code Playgroud) 我向 CRAN 提交了一个包,他们要求我替换Rd 文件中的\dontrun{}by\donttest{}并重新提交。我\dontrun{}用来包装一些应该抛出错误消息的例子。
更换后\dontrun{}由\donttest{}我进行了一些测试,并R CMD check仍然成功,但现在发生了这两个devtools::check()和R CMD check --as-cran由于包裹在失败的例子\donttest{}:
checking examples with --run-donttest ... ERROR
Run Code Online (Sandbox Code Playgroud)
经过一些浏览,我了解到 R 4.0.0 已更改R CMD check --as-cran为运行\donttest示例。根据R-devel的新闻:
“R CMD check --as-cran 现在运行 \donttest 示例(由 example() 运行),而不是指示测试人员这样做。这可以在开发过程中通过将环境变量R_CHECK_DONTTEST_EXAMPLES设置为假值来暂时规避。”
由于我打算将包重新提交给 CRAN,因此设置_R_CHECK_DONTTEST_EXAMPLES_为local对false我没有帮助。
我还在一个问题中发现了最近的讨论,devtools其中 Hadley Wickham 指出:
“一般来说,现在如果你不想在 CRAN 上运行测试 \dontrun{} 更有可能工作,但使用 \dontrun{} 可能会导致初始提交失败。”
所以现在我不知道如何继续,因为如果我重新提交包含所需更改的包,我已经知道它会在 …