2017-02-17 17 views
0

У меня возникла проблема с функцией, которая может как выводить регрессионную сводку в файлы csv, так и обрабатывать регрессионный анализ. Таким образом, код выглядит следующим образом:Обработка ошибки в функции, уведомление затем пропустить

У меня есть три предсказывающие переменные: age1 (непрерывный), gender1 (категорический 0/1), FLUSHOT (категорический 0/1)

В файле, первые 100 столбцов являются переменными ответа (все категорические 0/1), которые я хочу проверить.

Цель состоит в том, чтобы выполнить регрессионный анализ с каждой из переменных ответа (1: 100) и только выходное значение p, OR и CI.

Так что код у меня есть что-то выглядит следующим образом:

fun1<-function(x){ 
    res<-c(paste(as.character(summary(x)$call),collapse = " "), 
     summary(x)$coefficients[4,4], 
     exp(coef(x))[4], 
     exp(confint(x))[4,1:2],"\n") 

    names(res)<-c("call","p-value","OR","LCI","UCI","") 
    return(res)} 


res2=NULL 
lms=list() 
for(i in 1:100) 
{ 
    lms[[i]]=glm(A[,i]~age1+gender1+as.factor(FLUSHOT),family="binomial",data=A)    
    res2<-rbind(res2,fun1(lms[[i]])) 
} 
write.csv(res2,"A_attempt1.csv",row.names=F) 

Если, например, мы имеем достаточный размер выборки в каждой из категорий, или если предельная частота выглядит следующим образом:

table(variable1,FLUESHOT) 
    0 1 
0 15 3 
1 11 19 

Этот код работает хорошо, но если у нас есть что-то вроде:

table(variable15,FLUESHOT) 
     0 1 
    0 15 0 
    1 11 19 

код запуска в ошибки, отчета и остановок.

Я пробовал несколько способов использования try() и tryCatch(), но, похоже, не работал для меня.

ответ

0

Какое сообщение об ошибке вы видите? Вы можете попробовать использовать lrm из среднеквадратичного пакета для оценки модели логистической регрессии. И texreg вывести его на csv.

+0

Kat, спасибо, что ответили. Код ошибки, который я получил, выглядит следующим образом. Ошибка при приближении (sp $ y, sp $ x, xout = cutoff): Нужно, по крайней мере, два значения не-NA для интерполяции Есть ли какие-либо возможные способы обойти эту ошибку? –

+0

Привет, Yayi, это означает, что ваши данные иногда полностью отсутствуют (или только одно наблюдение). Кроме того, try-catch не позволит вам найти ошибки в данных, которые необходимо удалить. Я предлагаю вам прокрутить данные и проверить, что все в порядке для каждой модели (например, перекрестная табуляция DV и функция). – katharina

+0

Да, это именно то, что я сделал, очистите его перед запуском, и это работает. Большое спасибо. Тем не менее, я все еще скачу, что будет возможность просто выводить ошибку и двигаться дальше, не останавливая весь процесс. Надеюсь, я это выясню. –

 Смежные вопросы

  • Нет связанных вопросов^_^