Переработка при использовании `crossprod` в R? - PullRequest
0 голосов
/ 16 мая 2018

Хотя моя функция работает нормально, мне интересно, как избежать предупреждения, показанного ниже, при запуске моей простой функции?

Предупреждающее сообщение: In numer / denom: массив утилизации длиной 1 дюйм арифметика векторного массива устарела. Используйте c () или as.vector () вместо этого.

qq <- function(f, df1, df2, N){
       denom <- crossprod(df1, f) + df2 + 1  # I suspect warning is from here?
       numer <-  (df1 * (f - 1))
       return(numer / denom)
}

# Example of use:
qq(f = c(84.11, 4.05, 8.38), df1 = c(3, 1, 3), df2 = 24, N = 32)

1 Ответ

0 голосов
/ 16 мая 2018

Предупреждение появляется при функции return.

Попробуйте

return(numer / as.numeric(denom))

Причина в том, что denom - это матрица, а number - это атомный вектор.Я также подумал, что предупреждения не будет, но, похоже, операция, которую вы сделали, устарела.

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