代码之家  ›  专栏  ›  技术社区  ›  jakes

如何过滤出try输出元素

  •  1
  • jakes  · 技术社区  · 6 年前

    数据结构如下:

    # A tibble: 6 x 3
      alpha  beta optim_out      
      <dbl> <dbl> <list>         
    1   6.4   6.4 <list [5]>     
    2   0.4   6.4 <list [5]>     
    3   0.4   0.2 <list [5]>     
    4   1.6   1.6 <S3: try-error>
    5   3.2   0.4 <S3: try-error>
    6   0.8   0.8 <list [5]>
    

    <S3: try-error> 元素的输出 base::try()

    我试过了 dplyr::filter(!is.list(optim_out)) dplyr::filter((!attr(optim_out, 'class') == 'try-error'))

    1 回复  |  直到 6 年前
        1
  •  1
  •   akrun    6 年前

    因为数据集列是 list map

    library(tidyverse)
    df1 %>%
       filter(map_lgl(optim_out, ~ class(.x) != "try-error"))