Я хотел бы запустить цикл, который будет выполняться для каждой категории одной из переменных и произвести прогноз на каждую регрессию, чтобы сумма переменной прогнозирования была выведена из целевой переменной .Здесь является ли моя игрушка данные и код:Ошибка при циклировании линейной регрессии
df <- read.table(text = "target birds wolfs snakes
3 9 7 a
3 8 4 b
1 2 8 c
1 2 3 a
1 8 3 a
6 1 2 a
6 7 1 b
6 1 5 c
5 9 7 c
3 8 7 c
4 2 7 b
1 2 3 b
7 6 3 c
6 1 1 a
6 3 9 a
6 1 1 b ",header = TRUE)
Я написал этот код (ниже), что это цель состояла в том, чтобы получить результаты расчета, что написано выше, но я получил сообщение об ошибке при:
Вот код:
b <- list()
for(i in c("a","b",'c')){
lmModel <- lm(target ~ birds+wolfs, data = subset(df, snakes == i))
b[i] <- sum(predict(lmModel,newdata=subset(df, snakes == i))) - sum(df$target[which(df$snakes=='a'),])
}
b <- as.numeric(b)
b
Я получил эту ошибку:
Error in df$target[which(df$snakes == "a"), ] : incorrect number of dimensions
Как я могу решить эту проблему?
'ФР [который (DF $ змея == 'а'), "мишени"] или' df $ target [which (df $ snakes == 'a')] ' –
Спасибо, @ Andriy.I использовал df $ target [который (df $ snakes == 'a')], и он работает. – mql4beginner
Вы можете попробовать 'x <- lmList (Petal.Length ~ Petal.Width | Виды, data = iris); x @ .Data', чтобы построить модель, предсказать для каждого 'змеи' и вычислить разницу за один раз. –