Я уверен, что этому есть простое объяснение, но сегодня утром в мозгу сильный туман, и я в растерянности. Я пытаюсь использовать purrr::map() для вызова функции, которая иногда возвращает NA, но постоянно получаю сообщение об ошибке:
"Ошибка: невозможно преобразовать логический вектор в функцию"
Вот упрощенный случай, который возвращает ошибку:
library(tidyverse)
test <- function(x){
return(NA)
}
a <- map(.x = 1:2,.f = test())
R классифицирует NA как логическую переменную, но я не понимаю, почему map() пытается преобразовать эту переменную в функцию, когда я возвращаю ее. Что я здесь делаю не так?
Я думаю, вы хотите
.f = test
?test()
— это вызов, потому что вы включили разделители параметров. Если бы вы просто использовали его имя,test
, возможно, вы преуспели. (После того, как вызов был оценен, он вернул логический вектор.) Ответ на ваш антропоморфный вопрос в заголовке: «Потому что ему нужна или нужна функция».