Используя данные mpg
для получения базового примера:
dat <- mpg %>%
select(manufacturer, year, displ) %>%
group_by(manufacturer, year) %>%
summarise(meandispl = mean(displ)) %>%
ungroup()
# A tibble: 30 x 3
# Groups: manufacturer [15]
manufacturer year meandispl
<chr> <int> <dbl>
1 audi 1999 2.36
2 audi 2008 2.73
3 chevrolet 1999 4.97
4 chevrolet 2008 5.12
5 dodge 1999 4.32
6 dodge 2008 4.42
7 ford 1999 4.45
8 ford 2008 4.66
9 honda 1999 1.6
10 honda 2008 1.85
С этими данными я бы хотел group_by
manufacturer
и summarize
сравнить meandispl
между 1999
и 2008
без использования номеров строк (например, с first
и end
из slice
)
Пока что только для одной обобщенной переменной (но может быть несколько) я придумал :
dat %>%
group_by(manufacturer) %>%
summarise(diff2008_1999 = meandispl[which(year == 2008)] - meandispl[which(year == 1999)])
Однако я чувствую, что это не совсем правильный способ. Есть ли другие варианты, чтобы написать этот код? (без использования номера строки). В этом случае я использовал year
, но это также может быть строка (так что нет решения min
, max
)
Спасибо.