Я пишу функцию для выполнения логистической регрессии на двух столбцах данных. Я не могу обойти ошибки ... Я пытаюсь использовать 10-кратное перекрестное подтверждение. Вот код, я использую:проблемы с перекрестным кодом проверки - r -
SAdata = read.table("http://statweb.stanford.edu/~tibs/ElemStatLearn/datasets/SAheart.data",
sep=",",head=T,row.names=1)
log.fun = function(x,y) {
prediction = data.frame()
tset = data.frame()
dframe = cbind(x,y)
dframe = as.data.frame(dframe)
dframe$fold = sample(1:10, nrow(data), replace = TRUE)
list = 1:10
for (i in 1:10) {
train = subset(dframe, fold %in% list[-i])
test = subset(dframe, fold %in% c(i))
model = glm(x~y, data=train, family=binomial)
pred = as.data.frame(predict(model, test[,-1]))
prediction <- rbind(prediction, pred)
}
}
log.fun(SAdata$chd,SAdata$obesity)
Ошибка я получаю «Ошибка в sample.int (длина (х), размер, замена проб): недействителен„размер“аргумент»
Есть идеи?
От ошибки, я предположил бы, что проблема заключается в 'dframe $ складки = образец (1:10, nrow (данные), замените = TRUE)' строки. У вас нет данных, определяемых где угодно. Что вы ожидали от этого? – MrFlick
Спасибо. Я искал код ... это должно быть dframe вместо данных. – Brockagh