Для данной матрицы мне нужно отслеживать квантильные значения на столбец через сгруппированную переменную.В частности, я хочу сгруппировать вывод по «структуре когорт».Затем для столбцов с 1 по 5 я хочу вычислить 25-й, средний и 75-й процентили для сгруппированной переменной.Это означает, что моя выходная матрица будет 9 x 5. т.е. 3 строки на структуру когорты = 1, 3 строки для структуры когорты = 2 и 3 строки для структуры когорты = 3, каждая соответствует 25-му среднему и 75-му процентилям.
пример:
test.mat <- data.frame(matrix(nrow = 11, ncol =6))
colnames(test.mat)[[6]] = "Cohort Structure"
test.mat[,6]= c(1,1,1,1,1,1,2,2,3,3,3)
test.mat[1:11,4:5] <- rnorm(11*2,0,1)
test.mat[11, 5] <- NA
test.mat[1:3,1:3] <- rnorm(9,0,1)
X1 X2 X3 X4 X5 Cohort Structure
1 0.09529937 1.0140776 -0.45203406 -0.6585827 0.57117571 1
2 0.94442513 0.5777710 0.08588911 -0.3674672 0.01383938 1
3 1.47881362 0.4370171 -0.37843416 -1.2634002 0.58010696 1
4 NA NA NA 0.2844687 0.83113773 1
5 NA NA NA 0.8661393 0.35947394 1
6 NA NA NA -1.3685556 -0.71297431 1
7 NA NA NA -1.0117586 0.27020197 2
8 NA NA NA -0.7746377 0.97250990 2
9 NA NA NA -1.4406549 0.05538031 3
10 NA NA NA -0.2303378 -0.61625365 3
11 NA NA NA -0.1837904 NA 3
Требуемый выход (матрица вывода):
Для столбцов 1: 3 и строк 3: 9 выходная матрица будет NA.Столбец 1, строки 1: 3, сообщит 25-е, среднее значение, значения 75-го процентиля для структуры когорты = 1.Этот процесс будет повторен для столбца 2 и столбца 3.
В столбцах 4 и 5 повторите процесс вычисления 25-го, среднего и 75-го квантиля для каждой когортной структуры.Вычислите значения, исключая NA.
quantile(test.mat[1:3,1], c(0.25,0.5,0.75))
quantile(test.mat[1:3,2], c(0.25,0.5,0.75))
quantile(test.mat[1:3,3], c(0.25,0.5,0.75))
будет желаемым выходом для матрицы вывода [1: 3,1: 3]
quantile(test.mat[1:6,4], c(0.25,0.5,0.75))
приведет к желаемому выводу для матрицы вывода [1: 3,4]
для моего фактического набора данных мне нужен процесс, чтобы применить к матрице с 100 столбцами