Вы близки, ваш метод создания среднего (и впоследствии процентилей) может быть проще, если вы сначала используете сбор, а затем группируете данные по трем различным факторам.
library(dplyr)
n <- 10
tibb <- tibble(x = 1:5, y = 1, z = x ^ 2 + y)
tibb %>%
gather("fctr", "value") %>%
group_by(fctr) %>%
summarise(mean = sum(value) / n,
perc_50 = quantile(value, 0.5),
perc_75 = quantile(value, 0.75))
Однако,Я не уверен, хотите ли вы процентиль ненулевого подмножества или всего набора данных, потому что это изменит ваши результаты, то есть
> x = 1:5
> quantile(x, 0.1)
10%
1.4
> test <- c(0,0,0,0,0,1,2,3,4,5)
> quantile(test, 0.1)
10%
0