Как отфильтровать пробные выходные элементы - PullRequest
0 голосов
/ 01 октября 2018

С данными, структурированными, как показано ниже:

# 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 Ответ

0 голосов
/ 01 октября 2018

Поскольку столбец набора данных представляет собой list, мы можем перебрать столбец с помощью map

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