library(dplyr)

df <- read.csv("typhoon.csv")

df <- df %>%
  mutate(date = paste(Year, Month, Day, sep = "-")) %>%
  group_by(CycloneNo) %>%
  mutate(Hour_lag = lead(Hour),
         Hour_lag = ifelse(is.na(Hour_lag), -1, Hour_lag),
         # 如果颱風有跨日, 將前一日的18時計為2個int (1 int = 6 hr)
         interval = ifelse(Hour == 18 & Hour_lag == 0, 2, 1)
  ) %>%
  group_by(date) %>%
  # 計算每天颱風存在的時數
  mutate(Hour_sum = (sum(interval) - 1)*6) %>%
  filter(Hour_sum >= 18 & row_number()==1) %>%
  ungroup()# your code goes here