У меня есть фрейм данных:
Я хочу сгруппировать по "ID" и "direction", затем получить статистику для "value" , Самым сложным для меня является то, что для столбца «категория» мне нужно всегда выводить последнюю «категорию» в группе «ID», как показано на рисунке.
У меня есть код, но результат не желателен. Может кто-нибудь, пожалуйста, помогите мне изменить существующий код? Спасибо за ваше время!
ID <- c(1,1,1,2,2,2,3,3)
category <- c("green", "green", "red", "red","green", "green", "yellow", "yellow")
direction <- c("in", "out","in", "out","in", "out","in", "out")
value <- c(4,5,6,7,8,9,10,11)
df <- data.frame(ID, category, direction, value)
res <- df %>%
group_by(ID,direction) %>%
arrange(ID, direction)%>%
summarize(
category = last(category),
sum_value = sum(value),
count_value = length(value)
)