Я пытаюсь перебрать функцию, которая имеет три аргумента, но ни lapply
, ни mapply
не дают правильного решения. Цель здесь - получить все возможные результаты на основе всех возможных комбинаций трех аргументов (num
, resp
, cdr
). Если вы видите функцию ниже, цель здесь состоит в том, чтобы вычислить n
для всех трех уровней num (удерживая resp
и cdr
константу), для всех трех уровней resp
(удерживая num
и cdr
постоянная), и для всех трех уровней cdr
(удерживая resp
и num
постоянными). Но, как видно из результатов, ни lapply
, ни mapply
не дают здесь правильных ответов.
Попытка сделать это с помощью вложенных циклов for
также не увенчалась успехом (хотя я не очень хорош в использовании циклов, поэтому я открыт для решения на основе циклов, если оно даст мне правильный ответ).
Минимально воспроизводимый пример:
set.seed(124)
num <- c(10, 20, 30)
resp <- sample(100:200, 3)
cdr <- 3:5
my_fun <- function(num, resp, cdr){
n <- ((num * resp) / cdr)
}
sapply(num, my_fun, resp, cdr)
[,1] [,2] [,3]
[1,] 360 720 1080
[2,] 350 700 1050
[3,] 302 604 906
mapply(my_fun, num, resp, cdr)
[1] 360 700 906