r - 如何仅获取日期早于具有相同 ID 的另一行的 ID 行?
问题描述
我有一个看起来像这样的数据框。
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
或在基地使用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
在这两种情况下,我们确保 thatDateFormatted
是一个对象,按and (从最早到最新)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)
推荐阅读
- ibm-mq - 运行 IBM MQ dmpmqcfg 导致“libmqds_r.dylib”错误
- python - 如何使用 pySpark 比较两个 CSV 文件并验证是否存在
- c++ - OpenCV YAML:如何读写嵌套(递归)yaml文件
- sublimetext3 - Sublime text 分组打开文件夹中的文件
- angular - 检查请求是否已经按承诺完成
- html - 如何将导航栏上的菜单按钮定位为最右边的项目
- git - 如何在 Azure 管道中标记存储库?您需要 Git 'GenericContribute' 权限才能执行此操作
- javascript - 当使用 .map 并且索引内的输入标签始终为 0
- apache-flink - Flink disableOperatorChaining 性能影响
- python - 如果一列中的元素被看到两次,pandas 将数据帧分成两部分