r - 如何仅获取 ID 的日期早于具有相同 ID 的另一行的行?

标签 r

我有一个看起来像这样的数据框。

License.Number, DateFormatted
A019, 2018-09-20
A019, 2018-09-21
A020, 2018-09-21

我想删除具有重复许可证号的行,但仅保留具有最早 DateFormatted 数据的行。

如何在 R 中执行此操作?

最佳答案

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

或者在基础上使用重复

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

在这两种情况下,我们都确保 DateFormattedDate 对象,并按 License.NumberDateFormatted 对行进行排序>(从最早到最晚),然后仅保留每个 Licence.Number 的第一个条目。


示例数据

df <- read.table(text =
    "License.Number DateFormatted
A019 2018-09-20
A019 2018-09-21
A020 2018-09-21", header = T)

关于r - 如何仅获取 ID 的日期早于具有相同 ID 的另一行的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52655558/

相关文章:

r - 根据已建立的列之间的关系完成部分填充的列

r:通过将 Excel 文件作为列表传递到 dplyr 来编译它们

r - 通过在 R 中聚合复杂的配对名称求和

r - 将嵌套列表转换为数据框

r - 我可以告诉 ggpairs 使用对数刻度吗?

r - 安装 R 包后全局环境中的神秘 .N 对象

r - 为什么我的逻辑回归实现这么慢?

x 轴上的点之间的 R 空间比例

r - 查找(并返回)满足(逻辑)测试的列表的第一个元素

r - R 图中行的恒定绝对间距