代码之家  ›  专栏  ›  技术社区  ›  Raghavan vmvs

如果表不存在,则在r中跳过for循环

  •  0
  • Raghavan vmvs  · 技术社区  · 8 年前

    我在R中有一系列mysql表,如下所示。有些桌子不见了。

         Name
            A
            B
            C
            D
    

    姓名列表<-姓名

    我已经创建了一个函数。我用mapply在列表中运行函数

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

    这会引发如下错误

    Table B doesn't exist
    

    我有一百张桌子在桌子列表中。手动无法确定所有丢失的表。是否可以使用if语句跳过缺少的表。

    1 回复  |  直到 8 年前
        1
  •  0
  •   A. Suliman    8 年前

    创造 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