Проблема в том, как вы используете possibly
. possibly
необходимо обернуть функцию, которая генерирует ошибку. Вы думаете, что это будет chisq.test. Не ошибаюсь, потому что это был бы и мой первый выбор. Но внутри карты это не тот, который выдает ошибку. Функция, которую вы создали для части .f функции map
, выдает ошибку. Я надеюсь, что мое объяснение понятно, но проверьте следующие примеры, чтобы сделать его немного более понятным в коде.
пример 1:
# Catch error of chisq.test by wrapping possibly around it
map(df, possibly(chisq.test, NA_real_), x = df$gear)
$`mpg`
Pearson's Chi-squared test
data: df$gear and .x[[i]]
X-squared = 54.667, df = 48, p-value = 0.2362
......
$z
[1] NA
Пример 2 равных результатов:
# Catch error of created function inside map. wrap possibly around it
map(df, possibly(function(x) {
chisq.test(df$gear, x)}
, NA_real_ ))