Я использую R для построения математической модели. Я хочу написать функцию f(a, b, g)
, которая принимает 3 аргумента, а последняя - это функция. Я хочу знать, могу ли я передать функцию в качестве аргумента другой функции? Если это возможно, можете ли вы, ребята, дать мне простой пример? Благодарю.R-язык, можем ли мы передать функцию в качестве аргумента
-2
A
ответ
5
Конечно, законно передавать функцию аргумент функции. Многие элементарные функции R делают это. Например,
tapply(..., FUN)
Вы можете проверить их на ?tapply
.
Дело в том, что вы называете имя функции только символом. Например, в примере ниже: игрушечный
foo1 <- function() print("this is function foo1!")
foo2 <- function() print("this is function foo2!")
test <- function (FUN) {
if (!is.function(FUN)) stop("argument FUN is not a function!")
FUN()
}
## let's have a go!
test(FUN = foo1)
test(FUN = foo2)
Также можно передать функции аргументы foo1
или foo2
к test
, используя ...
. Я оставляю это для вас, чтобы провести какое-то исследование.
Если вы знакомы с языком C, то нетрудно понять, почему это является законным. R записывается на C (хотя его синтаксис языка относится к S-языку), поэтому по существу это достигается с помощью указателей для работы. Если вы хотите узнать больше об этом, см. How do function pointers in C work?
Смежные вопросы
- 1. Можем ли мы передать функтор в качестве аргумента другому функтору?
- 2. Можем ли мы иметь анонимную структуру в качестве аргумента шаблона?
- 3. как передать вложенную функцию в качестве аргумента
- 4. PHP: передать анонимную функцию в качестве аргумента
- 5. C# Как передать функцию в качестве аргумента?
- 6. Как передать функцию в качестве аргумента?
- 7. Как передать случайную функцию в качестве аргумента?
- 8. Как передать функцию в качестве аргумента контекста?
- 9. Как передать функцию в качестве аргумента
- 10. Как передать функцию в качестве аргумента
- 11. Можем ли мы передать пользовательский тип данных в шаблон в качестве аргумента
- 12. Можем ли мы передать объект в качестве аргумента в вызове объекта?
- 13. Можем ли мы передать строку пути с пробелами в ней в качестве аргумента функции fopen()?
- 14. Можем ли мы передать захваченные пакеты в качестве аргумента функции Socket send()
- 15. Можем ли мы передать каталог или хэш-объект в качестве аргумента командной строки для VBscript?
- 16. Можем ли мы вернуть функцию в C++?
- 17. Можем ли мы передать аргументы классу coffeescript?
- 18. В событии jquery почему мы передаем функцию() в качестве аргумента?
- 19. Как передать параметризованный класс в качестве аргумента
- 20. передать функцию в качестве аргумента другой функции в .vimrc
- 21. Javascript - Можем ли мы переопределить функцию JSON.parse
- 22. Можем ли мы назвать новую функцию стрелки?
- 23. Можем ли мы подключить функцию PHP mail()
- 24. В Tkinter как передать вызываемую функцию в качестве аргумента?
- 25. В Perl, как передать функцию в качестве аргумента другой функции?
- 26. Как передать функцию в качестве аргумента с аргументами?
- 27. Передать объект в качестве аргумента
- 28. Как передать функцию в качестве аргумента компоненту ReactJS в TypeScript
- 29. питон - передать столбец dataframe в качестве аргумента в применить функцию
- 30. Как передать функцию в качестве аргумента в Coffeescript
Функционалы? http://adv-r.had.co.nz/Functionals.html – Laterow
Да. См. Раздел «Оптимизация» и «интегрировать» в разделе «Примеры» для некоторых R-функций, которые принимают другие функции в качестве аргументов. –