R ранжировать несколько строк по группам

Я хочу ранжировать несколько строк по группам (несколько столбцов)

Тестовые данные, как показано ниже

data <- structure(list(CODE = c("AA","AA","AA","AA","AA"),  
           DATE = c(20181205,20181205,20181205,20181212,20181212), 
           TIME = c(14.0,14.0,14.2,18.0,18.0), 
           NO = c("D1","D1","D2","D3","D3"), 
           ITEM = c("AK011","ZH002","HJ005","AK011","KK021"),
           RANK = c(1,1,2,3,3)),
      .Names = c("CODE", "DATE", "TIME", "NO", "ITEM","RANK"), 
      class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -5L))

Ожидаемый результат

Я надеюсь получить результат, выделенный желтым цветом (столбец рейтинга), который я хотел ранжировать по столбцам (CODE, DATE, TIME & NO).

Я попытался найти и попробовать несколько примеров R ранга фрейма данных по группам (группа по рангу) с пакетом dplyr & Как ранжировать в группах в R? но все эти примеры не могли ранжировать повторяющиеся строки.

library(dplyr)
data %>% 
  group_by(CODE, DATE, TIME, NO) %>% 
  slice(which.min(TIME))

data %>%
  group_by(CODE, DATE, TIME, NO) %>%
  mutate(rank = rank(TIME, ties.method="first"))

Любая идея? Спасибо!

0 ответов

Другие вопросы по тегам