5
Czytałem funkcjonalności od github. Jedną z sugestii na stronie było użycie call_function
, jeśli pracuje się z listą funkcji. Oto kod ze strony:programowanie funkcjonalne w R
call_fun <- function(f, ...) f(...)
f <- list(sum, mean, median, sd)
lapply(f, call_fun, x = runif(1e3))
Wyjście został opublikowany jako:
# [[1]]
# [1] 498
#
# [[2]]
# [1] 0.498
#
# [[3]]
# [1] 0.49
#
# [[4]]
# [1] 0.29
Jednak nie był w stanie powtórzyć powyższe wyniki. Wystąpił błąd:
Error in FUN(X[[4L]], ...) : could not find function "f"
Czy brakuje mi tutaj czegoś?
Dzięki @eddi. Nie jestem pewien, czy moje pytanie przyda się przyszłym użytkownikom. Z chęcią usuwam, jeśli wydaje się to banalne. – Metrics
Nie jestem pewien, czy możesz go usunąć. Ma już upvote (moje) i przegrywa na odpowiedź (moja i druga). Wciąż jestem ciekawy, czy istnieje programowy sposób na rozwiązanie tego problemu. Wypróbowałem 'call_fun <- function (f, ...) match.fun (f) (...)', które powiedzie się w prostym przypadku i nie powiedzie się w ten sam sposób z 'sd == 5' w środowisku. –
@Metrics Napadłem na ten sam problem wcześniej z 'sd' (jest tylko tyle dwuliterowych nazw zmiennych), więc prawdopodobnie nie jest to zbyt częste pomyłka (nie jest to takie pewne, chociaż można znaleźć to pytanie przez wyszukiwarka) – eddi