Вы можете использовать sapply
. Лично я бы разрешил использовать любой pdf для функции
my_cdf <- function(x, pdf)
{
sapply(x, function(y) integrate(pdf, 0, y, subdivisions=2000)$value)
}
Так что мы можем сделать:
my_pdf <- function(y) y + 1
my_cdf(c(1, 2, 3), pdf = my_pdf)
#> [1] 1.5 4.0 7.5
или
my_cdf(c(0.1, 0.5, 1), pdf = dnorm)
#> [1] 0.03982784 0.19146246 0.34134475
Если вы уверен, что вам никогда не понадобится предоставлять другой pdf, тогда вы можете просто сделать
my_cdf <- function(x) sapply(x, function(y) integrate(my_pdf, 0, y, subdivisions=2000)$value)