Я пытаюсь создать функцию, которая в конечном итоге будет запускать несколько алгоритмов машинного обучения для моего набора данных.У меня есть первый маленький кусочек моей функции ниже и небольшая выборка данных.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы собрать мои данные в четыре различных фрейма данных и затем применить их к заданным функциям.Здесь, в первой функции, которую я тестирую, данные запускаются с использованием модели логистической регрессии, но на выходе она использует все данные для этой модели, а не только 1/4 кадра данных df, как я намереваюсь.Я проверил с помощью << -, чтобы увидеть, какие данные были переданы, и он отправляет набор данных, который составляет 1/4 от кадра данных df, который я ищу.Вопрос, почему это правильно передается в мою глобальную среду, а не в мою регрессионную функцию, и как мне это исправить?</p>
Данные:
zeroFac <- c(1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1)
goal <- c(8.412055, 7.528869, 8.699681, 10.478752, 9.210440, 10.308986, 10.126671, 11.002117, 10.308986, 7.090910, 10.819798, 7.824446, 8.612685,
7.601402, 10.126671, 7.313887, 5.993961, 7.313887, 8.517393, 12.611541)
City_Pop <- c( 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613,
11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613)
df <- data.frame(zeroFac,goal,City_Pop)
Функция:
forestModel <- function(eq1, ...){
#making our origenal data frame
train <- data.frame(cbind(...))
################
#splitting into 4 data sets
set.seed(123)
ss <- sample(1:4, size = nrow(train), replace=TRUE, prob = c(0.25,0.25,0.25,0.25))
t1 <- train[ss==1,]
t2 <- train[ss==2,]
t3 <- train[ss==3,]
t4 <- train[ss==4,]
################
m <- glm(eq1, family = binomial(link = 'logit'), data = t1)
summary(m)
}
eq1 <- df$zeroFac ~ df$goal + df$City_Pop
forestModel(eq1, df$zeroFac, df$goal, df$City_Pop)