ОШИБКА: невозможно собрать и проанализировать R-файлы для пакета - загрузить в CRAN - PullRequest
1 голос
/ 06 июня 2019

Пользователи сталкиваются с тем же сообщением об ошибке при установке пакетов в R ( здесь или здесь ), и решения, по-видимому, заключаются в том, чтобы переключить зеркало сайта или подождать, пока сопровождающие исправят ошибку. ошибок. Однако у меня возникла проблема с загрузкой пакета в CRAN, и пакет, созданный на Mac, не проходит проверку в Windows и версии R. для разработчиков.

Проблемной загрузкой в ​​CRAN является шестая версия пакета, и впервые эта ошибка появилась.

* installing *source* package 'packagename' ...
** using staged installation
** R
Error in parse(outFile) : 
  d:/temp/RtmpGW8fFv/R.INSTALL129d81ef3788f/packagename/R/functionname.R:1:1: unexpected '<'
1: <
    ^
ERROR: unable to collate and parse R files for package 'packagename'
* removing 'd:/RCompile/CRANguest/R-devel/lib/packagename'

Я попытался отобразить невидимые символы, и нигде не было "<" там, где его не должно быть. Затем я нормализовал окончания строк, вручную удалил символы в начале строк и ничего не помогло. </p>

Кто-нибудь знает, как исправить вышеуказанную ошибку с точки зрения сопровождающего?

Edit: Соответствующая часть файла ОПИСАНИЕ:

Depends: R (>= 3.4.0),
License: GPL-3
Encoding: UTF-8
LazyData: true
Imports: limSolve,
    quadprog,
    stats,
    graphics,
    grDevices
RoxygenNote: 6.1.1
Suggests: testthat
BuildVignettes: true

Функция использует base команды и limSolve::linp.

#' Fuzzy Linear Regression using the Fuzzy Least Absolute Residual Method
#'
#' The function calculates fuzzy regression coeficients using the fuzzy least absolute
#' residual (FLAR) method proposed by Zeng et al. (2017) 
#' for non-symmetric triangular fuzzy numbers.
#' @param x matrix with the second to last columns representing independent variable
#'    observations. The first column is related to the intercept, so it consists of ones.
#'    Missing values not allowed.
#' @param y matrix of dependent variable observations. The first column contains the 
#'    central tendency, the second column the left spread and the third column the right
#'    spread of non-symmetric triangular fuzzy numbers. Missing values not allowed.
#' @details The FLAR method expects real value input for the explanatory variables, and 
#'    non-symmetric triangular fuzzy numbers for the response variable. The prediction 
#'    returns non-symmetric triangular fuzzy numbers.
#' @note Preferred use is through the \code{\link{fuzzylm}} wrapper function with argument
#'    \code{method = "flar"}.
#' @inherit fuzzylm return
#' @inherit plrls seealso
#' @references Zeng, W., Feng, Q. and Li, J. (2017) Fuzzy least absolute linear regression. 
#'    \emph{Applied Soft Computing} 52: 1009-1019.
#' @keywords fuzzy
#' @export
#' @examples
#'    data(fuzzydat)
#'    fuzzylm(y ~ x, fuzzydat$dia, "flar", , , "yl", "yl")

flar <- function(x, y){
vars <- colnames(x)
n <- nrow(x)
p <- ncol(x)
X <- x

I <- diag(n)
Ir <- diag(p)
Z <- matrix(0, ncol = n, nrow = n)
ZX <- matrix(0, nrow = n, ncol = p)
ZXr <- matrix(0, nrow = p, ncol = p)
Zr <- matrix(0, nrow = p, ncol = n)

f <- c(rep(1, 6*n), rep(0, 3*p))

Req <- cbind(I, -I, Z, Z, Z, Z, X, ZX, ZX)
Req <- rbind(Req, cbind(Z, Z, I, -I, Z, Z, ZX, X, ZX))
Req <- rbind(Req, cbind(Z, Z, Z, Z, I, -I, ZX, ZX, X))

leq <- matrix(c(y))

R <- cbind(-I, Z, Z, Z, Z, Z, ZX, ZX, ZX)
R <- rbind(R, cbind(Z, -I, Z, Z, Z, Z, ZX, ZX, ZX))
R <- rbind(R, cbind(Z, Z, -I, Z, Z, Z, ZX, ZX, ZX))
R <- rbind(R, cbind(Z, Z, Z, -I, Z, Z, ZX, ZX, ZX))
R <- rbind(R, cbind(Z, Z, Z, Z, -I, Z, ZX, ZX, ZX))
R <- rbind(R, cbind(Z, Z, Z, Z, Z, -I, ZX, ZX, ZX))
R <- rbind(R, cbind(Zr, Zr, Zr, Zr, Zr, Zr, ZXr, -Ir, ZXr))
R <- rbind(R, cbind(Zr, Zr, Zr, Zr, Zr, Zr, ZXr, ZXr, -Ir))
R <- rbind(R, cbind(Z, Z, Z, Z, Z, Z, ZX, -X, ZX))
R <- rbind(R, cbind(Z, Z, Z, Z, Z, Z, ZX, ZX, -X))

l <- matrix(rep(0, 8*n + 2*p))

sorig <- limSolve::linp(E = Req, F = leq, G = -R, H = -l, Cost = f, ispos = FALSE)
s <- sorig$X

coefs <- matrix(c(s[(6*n+1):(6*n+p)],
        s[(6*n+p+1):(6*n+2*p)],
        s[(6*n+2*p+1):(6*n+3*p)]), ncol = 3, 
        dimnames = list(vars, c("center", "left.spread", "right.spread")))
lims <- t(apply(x, 2, range))
rownames(lims) <- vars
colnames(lims) <- c("min", "max")
fuzzy <- list(call = NULL, x = x, y = y, lims = lims,
    method = "fls", fuzzynum = "non-symmetric triangular", coef = coefs)
class(fuzzy) <- "fuzzylm"
fuzzy
}

1 Ответ

1 голос
/ 17 июля 2019

Кажется, я нашел причину проблемы и решение.Файл с проблемной функцией был создан в Windows (RStudio) и отредактирован на Mac (BBEdit).Mac пытался сохранить окончания строк Windows во время редактирования, и после возврата файла в Windows кодировка изменилась на редкий вариант UTF8.Компиляторы R в Windows не могут обработать экзотическую кодировку.

Решение, по-видимому, заключается в том, чтобы согласовать все окончания строк на LF на разных платформах и обеспечить стабильную кодировку файлов на разных платформах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...