Мне нужно суммировать в сгруппированном data_frame (предупреждение: решение с dplyr очень ценится, но не обязательно) и то, и другое в каждой группе (простое) и то же самое на " других "групп.Подведите итоги с помощью dplyr «other then» groups
минимальный пример
if(!require(pacman)) install.packages(pacman)
pacman::p_load(dplyr)
df <- data_frame(
group = c('a', 'a', 'b', 'b', 'c', 'c'),
value = c(1, 2, 3, 4, 5, 6)
)
res <- df %>%
group_by(group) %>%
summarize(
median = median(value)
# median_other = ... ??? ... # I need the median of all "other"
# groups
# median_before = ... ??? ... # I need the median of groups (e.g
# the "before" in alphabetic order,
# but clearly every roule which is
# a "selection function" depending
# on the actual group is fine)
)
мой ожидаемый результат заключается в следующем
group median median_other median_before
a 1.5 4.5 NA
b 3.5 3.5 1.5
c 5.5 2.5 2.5
Я искал на Google строки, подобные "dplyr реферирования за исключением групп", "dplyr резюмировать другую затем группу", Я искал документацию dplyr, но я не смог найти решение.
здесь, этот (How to summarize value not matching the group using dplyr) не применяется, поскольку он работает только по сумме, то есть является решением, специфичным для конкретной функции (и с простой арифметической функцией, которая не учитывала изменчивость в каждой группе). Что относительно более сложного запроса функции (т. Е. Mean, sd или user-function)? :-)
Спасибо всем
PS: summarize()
пример, тот же вопрос приводит к mutate()
или других dplyr-функций рабочего на основе групп.
Вы не можете просто использовать 'library (dplyr)' вместо первых двух строк? –
Если dplyr не установлен в вашей системной библиотеке (dplyr), возвращайте ошибку, поэтому, чтобы быть уверенным, что любой может запустить код, мне пришлось писать 2 строки кода, и я решил использовать pacman вместо этого, что очень полезно пакет в мнении (потому что вы можете загружать (и устанавливать при необходимости) много пакетов одновременно с помощью только двух строк кода) – Corrado