Если таблица не существует, пропустите цикл for в R

0

У меня есть ряд таблиц mysql в R следующим образом. Из таблиц некоторые из них отсутствуют.

     Name
        A
        B
        C
        D

список имена <-Name

Я создал функцию. Я использовал mapply для запуска функции в списке

 Y<-function(x){summary(x)}
 A<-mapply(Name, Y)

Это вызывает ошибку следующим образом

Table B doesn't exist

У меня сто таблиц в списке таблиц. Невозможно определить все недостающие таблицы вручную. Есть ли способ пропустить недостающие таблицы с помощью оператора if.

  • 1
    Если MySQL API R еще не предлагает функцию для проверки, существует ли таблица, вам, возможно, придется использовать некоторый динамический SQL здесь.
  • 0
    Вдобавок ко всему, вы можете запустить SHOW TABLES для текущей базы данных, чтобы получить список всех таблиц, а затем использовать это в своем коде R.
Показать ещё 1 комментарий
Теги:
if-statement

1 ответ

0
Лучший ответ

Создать список namelist2 содержит все доступные таблицы в MySql, используя show tables; затем используйте is.element для проверки

 Y<-function(x){
                 if(is.element(x, namelist2)) summary(x)
    }

Другой вариант - safely от purrr

   library(purrr)
   Y<-function(x){
                 safely(summary(x))
    }

Или вы можете попробовать try or try-catch

  • 2
    Как это решает проблему, что данная таблица может не существовать на сервере MySQL?
  • 0
    @ TimBiegeleisen спасибо за то, что я не читал ОП внимательно. Просто для записей, я не видел твоих предложений show tables когда писал свои. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню