У меня есть кадр данных, который выглядит следующим образом:
Group1 | Group2 | Score1 | Score2
-------|--------|--------|--------
A | 1 | 10 | 11
A | 2 | 13 | 14
B | 1 | 4 | 7
B | 2 | 9 | 12
A | 1 | 5 | 11
B | 2 | 9 | 13
A | 2 | 7 | 9
B | 1 | 7 | 10
Мне нужно создать новую переменную, которая даст мне медианное значение для каждой комбинации подгрупп, что-то вроде
Group1 | Group2 | Score1 | Score2 | Median
-------|--------|--------|--------|-------
A | 1 | 10 | 11 | 10.5
A | 2 | 13 | 14 | 11.5
B | 1 | 4 | 7 | 7.0
B | 2 | 9 | 12 | 10.5
A | 1 | 5 | 11 | 10.5
B | 2 | 9 | 13 | 10.5
A | 2 | 7 | 9 | 11.5
B | 1 | 7 | 10 | 7.0
(Мои срединные вычисления вручную могут быть неправильными, но я думаю, что точка зрения уже достигнута).
Я попытался использовать агрегатную функцию, например:
MedianAggregate <- aggregate(df[,45:47],
by = list(df$provider, df$field),
FUN = median)
Что я получаю вместо этого из того, что я хочу, это то, что выглядит следующим образом:
Group1 | Group2 | Score1 | Score2
-------|--------|--------|--------
A | 1 | 7.5 | 11
A | 2 | 10 | 11.5
B | 1 | 5.5 | 8.5
B | 2 | 9 | 12.5
в основном мне нужно получить тот же результат, который я получил бы, если бы я применил медианную функцию к трем строкам матрицы, а не к фрейм данных, для каждой комбинации подгруппы.
Любая помощь будет принята с благодарностью.