Эта ошибка на самом деле встречается на предыдущей строке mod <- lm(y ~ x[,string==1])
.
Измените свою фитнес-функцию, чтобы распечатать строку
fitness <- function(string) {
mod <- lm(y ~ x[,string==1])
-BIC(mod)+sum(string*-1)*100 # fitness function value
}
и запустить ga. Вы увидите, что это происходит последовательно, когда строка - это все нули.
Проверить непосредственно.
string = rep(0,13)
fitness(string)
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0
Error in x[, ii] : subscript out of bounds
mod <- lm(y ~ x[,string==1])
Error in x[, ii] : subscript out of bounds
Проблема в том, что вы пытаетесь установить линейную модель с переменными предиктора NO. Когда вы включаете этот штрафный срок, он переносит число переменных в ноль. Без этого термина вы вряд ли испытаете все нули.
Существует разница между добавлением атрибута в div и его отображением. В настоящее время идет обсуждение этой темы на Github . Кажется, что есть некоторые обходные пути, но у всех есть недостатки.