2015-02-19 2 views
0

У меня есть набор данных с числом переменных. Я хочу функцию, которая создает гистограммы каждой переменной, и когда она сталкивается с проблемой, она пытается создать барплот вместо нее. Если он сталкивается с проблемой после попытки создания штрихового кода, он пропускает это значение p и переходит к следующему p.Пропустить ошибку и продолжить функцию в R

Что я имею в виду (псевдокод):

for (i in ncol(data)) { 
    try(hist(data[i])) { 
     if "error" try(barplot(data[i])) { 
      if "error" print ("Error") } 
     } 
    continue to i # code executes through all columns of data 
    } 
} 

Я попытался с помощью попробовать() и tryCatch(), основанный на других должностях StackOverflow, но я не могу показаться, чтобы выяснить, как работайте.

ответ

2

Для этого вам, вероятно, понадобится tryCatch. Что-то вроде следующего должно сделать трюк (хотя я не могу проверить его, так как вы не предоставляете никаких данных).

for(i in 1:ncol(d)) { 
    tryCatch(hist(d[[i]], main=i), error=function(e) { 
    tryCatch(barplot(d[[i]], main=i), error=function(e) { 
     print('Error') 
    }) 
    }) 
} 
+0

Да, это сработало. Я изменил одно: barplot (table()) Извините, я не мог предоставить данные. Я продолжал пытаться генерировать фиктивные данные и сталкивался с ошибками. , , Благодаря! – SocraticDatum

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