Подтвердить что ты не робот

Нет видимого определения глобальной функции для медианы

С момента последнего обновления R я получаю заметку

summary.xmlImport: нет видимого определения глобальной функции для 'медианного

в проверке CRAN. Дальнейшие примечания относятся к read.table, write.table и другим стандартным функциям в R.

Когда я смотрю на свой файл summary.xmlImport, файл выглядит так:

summary.xmlImport <- function(object, ...){

   rowCount <- sapply(object,nrow)
   cat("Summary of xmlImport object\n")
   cat("---------------------------\n")
   cat("Sequences    :",length(object),"\n")
   cat("Min hits     :",min(rowCount),"\n")
   cat("Average hits :",mean(rowCount),"\n")
   cat("Median hits  :",median(rowCount),"\n")
   cat("Max hits     :",max(rowCount),"\n")
   invisible(object)

} 

Я не могу понять, почему я должен добавить функцию median в NAMESPACE, но почему бы не min, mean и т.д. Примечание только о функции median.

Кто-нибудь знает, в чем причина заметки и как ее исправить? Я отметил, что есть тонны пакетов R, которые в настоящее время имеют одинаковую записку.

Я могу понять это предупреждение в контексте не объявленной переменной, но я бы предположил, что median(), read.table() и такие функции глобально видны в R, тем более что mean() кажется!?

EDIT: я получаю только записку на CRAN, но не на моем локальном компьютере, что делает поиск решения немного неприятным... Информация о сеансе моего компьютера:

> sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.2 LTS
4b9b3361

Ответ 1

По состоянию на Понедельник 29 июня 2015 г., все функции base должны быть явно экспортированы в NAMESPACE, чтобы передать R CMD check --as-cran. Это происходит потому, что код теперь проверяется только при прикрепленном пакете base, поэтому функции из пакетов по умолчанию (например, статистика) должны быть явно указаны.

Чтобы импортировать эти пакеты, сделайте следующее:

  • В DESCRIPTION вы, вероятно, захотите перечислить их в Imports. Существует очень мало оснований перечислять пакет в Depends.
  • В NAMESPACE вы можете выбрать между import(stats) или importFrom(stats, ...), где ... - одно или несколько разделенных запятыми имен функций. (Если вы используете roxygen2::roxygenize() или devtools::document() для создания документации и NAMESPACE, аналогичная разметка будет #' @import stats и #' @importFrom stats ....)

Если вы хотите работать в интерактивном режиме с R в режиме, который имитирует это, вам нужно запустить R только с базовым пакетом. Существует несколько способов сделать это, но, вероятно, самым простым является установка переменной среды в вашей оболочке: R_DEFAULT_PACKAGES=NULL или в файле .Renviron и затем запустите R, используя R --vanilla. В терминале или bash это будет:

$ export R_DEFAULT_PACKAGES=NULL
$ R --quiet --vanilla
> search()
[1] ".GlobalEnv"   "Autoloads"    "package:base"

В командной строке Windows это будет:

C:\>SET R_DEFAULT_PACKAGES=NULL
C:\>R --quiet --vanilla
> search()
[1] ".GlobalEnv"   "Autoloads"    "package:base"