Это из-за вашего @examples
раздела.Измените определение на что-то вроде:
#' chi.stat function
#'
#' This function... (description here)
#' @param ftab (argument here)
#' @param eps numeric, a tolerance factor; default 1e-9
#' @return chi.val (return value)
#' @export
#' @examples
#' \dontrun{
#' chi.stat()
#' }
chi.stat<-function(ftab, eps = 1e-9)
{
tot<-sum(ftab);
expv<-outer(rowSums(ftab)/tot, colSums(ftab)/tot, '*')*tot;
signal<-(colMeans(expv)<eps)*(1:dim(ftab)[2]);
indx<-setdiff(signal,0);
ftemp<-((ftab-expv)^2/expv)
chi.val<-ifelse(length(indx)==0, sum(ftemp), sum(ftemp[,-indx]));
return(chi.val);
}
, чтобы cmdcheck не пытался запустить весь код в разделе примеров.(Я добавил значение по умолчанию eps
в аргументы функции, чтобы решить другую проблему. Вы можете определить как постоянную в функции, если хотите.)
Еще лучше , построитьправильный аргумент ftab
вручную в разделе @examples
(и не используйте \dontuse
).Это тип тестирования CI: каждый раз, когда вы запускаете cmdcheck и / или собираете пакет, он запускает весь этот код и жалуется на ошибки.
#' chi.stat function
#'
#' This function... (description here)
#' @param ftab (argument here)
#' @param eps numeric, a tolerance factor; default 1e-9
#' @return chi.val (return value)
#' @export
#' @examples
#' m <- matrix(1:4, nrow = 2)
#' chi.stat(m)
#' # [1] 0.07936508
Включаете ли вы вывод в раздел @examples
это вопрос личных предпочтений.Если вы хотите провести дальнейшее CI-тестирование, то сделайте что-то вроде
#' @examples
#' m <- matrix(1:4, nrow = 2)
#' ret <- chi.stat(m)
#' stopifnot(abs(ret - 0.07936508) < 1e-9)
Это может не заменить полное тестирование, но если у вас нет формального юнит-тестирования (возможно, через testthat
в пакете ./tests/testthat/
папка), то это лучше, чем ничего.
Примечание: убедитесь, что число 0,079 действительно корректно в зависимости от ваших функциональных требований.То есть, если вы реализуете какой-то известный процесс / алгоритм, возьмите ранее известный или рассчитанный вручную / проверенный ввод и вывод.