Надеюсь, я правильно понял ваш вопрос. Это то, что вы ищете?
my.df <- data.frame(group = gl(3, 5), var = runif(15))
aggregate(my.df$var, by = list(my.df$group), FUN = function(x) quantile(x, probs = 0.95))
Group.1 x
1 1 0.6913747
2 2 0.8067847
3 3 0.9643744
EDIT
На основании ответа Винсента,
aggregate(my.df$var, by = list(my.df$group), FUN = quantile, probs = 0.95)
также работает (вы можете убрать кошку 1001 способом - мне сказали). Примечание: вы можете указать вектор желаемых символов, например, c(0.1, 0.2, 0.3...)
для децилей. Или вы можете попробовать функцию summary
для некоторой предопределенной статистики.
aggregate(my.df$var, by = list(my.df$group), FUN = summary)