Оценка многопараметрической функции с ограничениями - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть функция f (x, y), где оба входа являются целыми числами. Учитывая натуральное число K, я хотел бы оценить f во всех точках из набора { (x,y) : 0 <= x <= K-1 , x < y <= K }. Другими словами, оценивая f на всех возможных 0 <=x,y <= K, которые удовлетворяют y>x.

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

1 Ответ

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

Вот один из способов сделать то, что просит вопрос. Это простой double *apply l oop с вызовом функции во внутренней части l oop.

f <- function(x, y) {x + y + x*y}

K <- 10
sapply(0:(K - 1), function(x){
  sapply((x + 1):K, function(y) f(x, y))
})

Это легко переписать как функцию K и f.

fun <- function(K, FUN){
  f <- match.fun(FUN)
  lapply(0:(K - 1), function(x){
    sapply((x + 1):K, function(y) f(x, y))
  })
}

fun(10, f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...