Использование mapply, где аргументы указаны фреймом данных - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь использовать функцию много раз и каждый раз менять аргументы. Аргументы, которые я хочу изменить, также меняются.

Я пытаюсь использовать фрейм данных, в котором имена столбцов указывают, какие аргументы я хочу изменить.

Например, представьте, что мы используем mapply кратно 1: 3 на 4 и 5:

f <- function(A, B, C = 1) A * B * C
mapply(f, A = rep(1:3, 2), B = rep(4:5, each = 3))

Мы можем использовать expand.grid, чтобы упростить задачу:

arg <- expand.grid(A = 1:3, B = 4:5)
mapply(f, A = arg$A, B = arg$B)

Я пытаюсь сделать это:

mapply(f, arg)

Так, что аргументы A и B указаны во входных данных arg. Это возможно?

1 Ответ

1 голос
/ 15 апреля 2020

Мы можем использовать do.call

do.call(Map, c(f = f, arg))

Или с mapply

do.call(mapply, c(FUN = f, arg))
#[1]  4  8 12  5 10 15
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...