A tidyverse
опция
library(tidyverse)
df %>%
mutate(DateFormatted = as.Date(DateFormatted)) %>%
arrange(License.Number, DateFormatted) %>%
group_by(License.Number) %>%
filter(row_number(License.Number) == 1)
## A tibble: 2 x 2
## Groups: License.Number [2]
# License.Number DateFormatted
# <fct> <date>
#1 A019 2018-09-20
#2 A020 2018-09-21
Или в базе, используя duplicated
df$DateFormatted <- as.Date(df$DateFormatted)
df[order(df$License.Number, df$DateFormatted), ]
df[!duplicated(df$License.Number), ]
# License.Number DateFormatted
#1 A019 2018-09-20
#3 A020 2018-09-21
В обоих случаях мы гарантируем, что DateFormatted
является Date
объектом, сортировкастроки на License.Number
и DateFormatted
(от самого раннего к последнему), а затем сохраняют только первую запись для Licence.Number
.
Пример данных
df <- read.table(text =
"License.Number DateFormatted
A019 2018-09-20
A019 2018-09-21
A020 2018-09-21", header = T)