Мне нужно найти оптимальный вес (а), чтобы минимизировать сумму квадратов ошибок.Я использую это в качестве примера, так как у меня будет более сложная проблема, над которой нужно работать, и которая требует использования некоторых других пакетов оптимизации, кроме lm.Я получаю warnings (), говоря, что «В * y. Переработка массива длины 1 в арифметике массива-вектора устарела. Вместо этого используйте c () или as.vector ()».Я пробовал as.vector (a * y), a [1] * y, a * as.vector (y), но ничего не работает.
Что мне сделать, чтобы избавиться от этого сообщения?
install.packages("NlcOptim")
library(NlcOptim)
x <- c(1:4)
y <- c(2,4,6,8)
objfun <- function(a) {
return(sum((x-a*y)^2))
}
x0 <- 1
solnl(x0,objfun = objfun)
Вот сообщение об ошибке, которое я вижу после ввода warnings()
:
1: In a * y :
Recycling array of length 1 in array-vector arithmetic is deprecated.
Use c() or as.vector() instead.