#r #roxygen
#r #roxygen
Вопрос:
roxygenize завершается ошибкой в следующем коде со следующим сообщением об ошибке. В других сообщениях по этой теме указывается, что там неуместный символ. Я не могу найти ничего неправильного! Можете ли вы определить проблему?
#' My Title. My Description
#'
#' @return A n x n code{link{matrix}} where n = the number of variables. Row and column names are in the same order and are equivalent to the variable names in samp{timeSeriesData}. Each entry [i,j] in the matrix is the covariance between variable i and variable j.
#' @callGraphPrimitives
#' @note some notes here
MyFunc = function( timeseriesData , method , decayFactor )
{
}
Error in do.call(paste, c(trimmed.lines, sep = "n")) :
variable names are limited to 256 bytes
Calls: roxygenize ... parse.ref.list -> append -> parse.ref -> parse.ref.preref
-> do.call
Execution halted
Правка1
Приведенный выше код работает просто отлично, если я уберу несколько слов из длинной строки @return
Правка2
Добавление sessionInfo() приводит к результатам перед вызовом roxygenize.
R version 2.12.2 (2011-02-25)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics utils datasets grDevices methods base
other attached packages:
[1] roxygen_0.1-2 digest_0.4.2
Комментарии:
1. На моем компьютере это выполняется без каких-либо ошибок. Каков результат
sesionInfo()
?2. Я опубликовал sessionInfo перед вызовом roxygenize. Я не могу заставить его работать после вызова roxygenize, потому что выполнение останавливается. Обратите внимание, что исходный код работает нормально, если убрать несколько слов из конца строки @return.
3. Вот предположение:
@return
Параметр ограничен 256 символами. Возможно, я сталкивался с такой же проблемой в прошлом, потому что, как правило, my@return
содержит что-то минимальное, подобное@return data.frame
. Вместо этого я склонен использовать описание roxygen для расширения механики и выходных данных. К вашему сведению, вам не хватает@param
вызовов — если вы собираетесь использовать эту функцию в пакете, проверка R CMD будет отменена, если ваши параметры @param и функции не совпадают.4. @Andrie — да, я убрал @param просто для сокращения кода. Я думаю, вы правы насчет @return…it было бы здорово получить окончательный ответ, что это на самом деле ограничение.
5. @Andrie — ах … только что увидел ответ @Henry’s
Ответ №1:
Это известная ошибка: смотрите это обсуждение с участием Хэдли Уикхем, участника roxygen.
Обходной путь заключается в том, чтобы строки были короче: в вашей #' @return A n x n ...
строке около 270 символов (включая три предложения), поэтому ее можно легко разделить.
Комментарии:
1. также 1. когда вы говорите «разделить», вы имеете в виду, что я могу сохранить содержимое и просто разделить его на несколько строк?
Ответ №2:
Другим возможным решением является обновление до R2.13.0, теперь максимальная длина вашего символа равна 10000 вместо 256