如何避免新R开发版本(R正在开发(不稳定)(2017-02-15 r72179))出现在R CMD check中的以下注释?

• checking for unstated dependencies in examples ... OK
• checking line endings in C/C++/Fortran sources/headers ... OK
• checking compiled code ... NOTE
File ‘pkgname/libs/pkgname.so’:
  Found no calls to: ‘R_registerRoutines’, ‘R_useDynamicSymbols’

It is good practice to register native routines and to disable symbol
search.

例如Hmisc

推荐答案

这个信息有点神秘.我环顾了一下其他软件包,发现名称空间文件中的useDynLib(packagename)useDynLib(packagename, .registration = TRUE)取代.

此外,我在src/目录中添加了一个名为registerDynamicSymbol.c文件,其代码如下:

// RegisteringDynamic Symbols

#include <R.h>
#include <Rinternals.h>
#include <R_ext/Rdynload.h>

void R_init_markovchain(DllInfo* info) {
  R_registerRoutines(info, NULL, NULL, NULL, NULL);
  R_useDynamicSymbols(info, TRUE);
}

我采纳了GitHub Rcpp人的建议.规范参考是在Writing R Extensions

还有R Devel Mailinglist人提供了补充信息.

UPDATE

最直接的方法是:

  1. 使用当前的R开发版本(最终将成为3.4版)
  2. 运行tools::package_native_routine_registration_skeleton("."),将完整输出复制并粘贴到packagename_init.c文件中,放入src/
  3. 更新NAMESPACE,验证useDynLib(packagename, .registration = TRUE)
  4. 如有必要,将exportPattern更换为export( list of object to be exported )

UPDATE 18th July

正如@SymbolX使用R和RStudio最新版本的开发工具所指出的,第2点.(init.c文件)由devtools(使用RStudio校验位)或tools包处理.

R相关问答推荐

如何计算每个月和每年的总数?

R滚动添加或删除计数到列表

在彩色和灰度下工作的调色板?

更改输入值时不要清除(用户输入的)react 变量的值

应用 ifelse 而不使用 R 应用 for 循环

关键字在R中的字符串的上下文中重复多次

如何根据值在矩阵上水平移动行

如何根据列表名称对数据进行排序?

如何使用“ggplot2”从数字矩阵中绘制栅格

似乎无法让 stringr() 恰好适合中间字符串提取

如何在 R 中创建带有拟合曲线的 3D 条形图

在 group_by 中,改变一个新列,该列根据列的出现顺序获取列的值

如何使用 cross 和 .names 参数将此基本 R 代码转换为 dplyr

如何将所有列重命名为R中的中间分隔符?

可以使 data.table 输出看起来更像 tibble 输出吗? (10 行,仅打印适合屏幕的列)

判断线性混合效应模型的正态假设

创建具有多个数据序列的字符向量

计算每第 n 个元素的平均值

如何从矩数组表中调用名称中包含特定字符串的矩阵?

如何从R中的父函数访问变量