фабрика функций в R для генерации функций, которые вычисляют k-процентили с несколькими k - PullRequest
0 голосов
/ 24 мая 2018

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

мой код:

genKpercentile = function(...) {
l = list(...)
funList = list()
l[[..k]]
return(function(x) quantile(x, probs = k*0.01))
}
genKpercentile(25,50,75)(any_dataset) #find the 25,50,75 percentile in any dataset

, но я новичок в R, поэтому яне могу быть уверен, что как достичь своей цели.может кто-нибудь мастер может помочь мне исправить мой код, чтобы иметь возможность генерировать несколько k процентиль.

большое спасибо.

Я могу использовать один k для генерации k процентиль:

data(mtcars)
mtcars

genKpercentile = function(k) {
  return(function(x) quantile(x, probs = k*0.01))
}

genKpercentile(25)(mtcars$mpg)

но если я хочу сгенерировать несколько k, я не знаю, как написать свой R-код ...

1 Ответ

0 голосов
/ 24 мая 2018

Я думаю, что вы ищете

any_dataset = rnorm(1000)
genKpercentile = function(...) {
  l = unlist(list(...))
  return(function(x) quantile(x, probs = l*0.01))
}

genKpercentile(25,50,75)(any_dataset) #find the 25,50,75 percentile in any dataset

Или, еще проще,

genKpercentile = function(...) function(x) quantile(x, probs = c(...)*0.01)

Дело в том, что вам нужно превратить ... в вектор, а нечем список

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