return 列中的最高日期
return highest date in column
我有一个包含发射器代码和相应日期的列。我想通过选择所有具有最新日期和其余列的唯一发射器代码来缩小我的数据集。因此,例如,如果发射器代码:A69-1602-59778 有日期(2019-11-11;2019-11-12;2019-11-13),我只想要 2019-11-13 和相应的发射器代码。我怎样才能做到这一点?
我应该得到一个包含 119 行(119 个唯一发射器代码)和相应最新日期的数据框。注意:Dput 可能不包含所有发射器代码,因为它是一个大型数据集。
我的数据:
structure(list(Date = structure(c(18211, 18211, 18211, 18211,
18211, 18211, 18211, 18211, 18211, 18211, 18212, 18212, 18212,
18212, 18212, 18212, 18212, 18212, 18212, 18212, 18213, 18213,
18213, 18213, 18213, 18213, 18213, 18213, 18213, 18213, 18213,
18213, 18214, 18214, 18214, 18214, 18214, 18214, 18214, 18214,
18215, 18215, 18215, 18215, 18215, 18215, 18215, 18215, 18216,
18216, 18216, 18216, 18216, 18216, 18216, 18216, 18216, 18216,
18217, 18217, 18217, 18217, 18217, 18217, 18217, 18217, 18217,
18217, 18217, 18217, 18217, 18218, 18218, 18218, 18218, 18218,
18218, 18218, 18218, 18218, 18219, 18219, 18219, 18219, 18219,
18219, 18219, 18219, 18219, 18219, 18220, 18220, 18220, 18220,
18220, 18220, 18220, 18220, 18220, 18220), class = "Date"), Transmitter = c("A69-1602-59769",
"A69-1602-59776", "A69-1602-59775", "A69-1602-59771", "A69-1602-59774",
"A69-1602-59773", "A69-1602-59772", "A69-1602-59777", "A69-1602-59778",
"A69-1602-59770", "A69-1602-59773", "A69-1602-59775", "A69-1602-59777",
"A69-1602-59771", "A69-1602-59772", "A69-1602-59774", "A69-1602-59778",
"A69-1602-59776", "A69-1602-59765", "A69-1602-59761", "A69-1602-59772",
"A69-1602-59777", "A69-1602-59774", "A69-1602-59773", "A69-1602-59776",
"A69-1602-59770", "A69-1602-59759", "A69-1602-59759", "A69-1602-59761",
"A69-1602-59775", "A69-1602-59765", "A69-1602-59771", "A69-1602-59774",
"A69-1602-59773", "A69-1602-59772", "A69-1602-59777", "A69-1602-59778",
"A69-1602-59776", "A69-1602-59775", "A69-1602-59771", "A69-1602-59770",
"A69-1602-59772", "A69-1602-59773", "A69-1602-59774", "A69-1602-59777",
"A69-1602-59759", "A69-1602-59778", "A69-1602-59769", "A69-1602-59774",
"A69-1602-59772", "A69-1602-59773", "A69-1602-59777", "A69-1602-59759",
"A69-1602-59775", "A69-1602-59761", "A69-1602-59778", "A69-1602-59770",
"A69-1602-59765", "A69-1602-59773", "A69-1602-59774", "A69-1602-59777",
"A69-1602-59772", "A69-1602-59759", "A69-1602-59765", "A69-1602-59761",
"A69-1602-59770", "A69-1602-59778", "A69-1602-59769", "A69-1602-59760",
"A69-1602-59775", "A69-1602-59768", "A69-1602-59773", "A69-1602-59777",
"A69-1602-59772", "A69-1602-59774", "A69-1602-59768", "A69-1602-59770",
"A69-1602-59761", "A69-1602-59767", "A69-1602-59769", "A69-1602-59777",
"A69-1602-59772", "A69-1602-59774", "A69-1602-59773", "A69-1602-59761",
"A69-1602-59769", "A69-1602-59778", "A69-1602-59775", "A69-1602-59767",
"A69-1602-59759", "A69-1602-59772", "A69-1602-59777", "A69-1602-59773",
"A69-1602-59774", "A69-1602-59759", "A69-1602-59769", "A69-1602-59778",
"A69-1602-59756", "A69-1602-59771", "A69-1602-59775"), Batch.location = c("Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Medemblik", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Medemblik", "Medemblik", "Medemblik", "Den Oever", "Medemblik",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Medemblik",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Medemblik", "Den Oever", "Medemblik", "Den Oever",
"Den Oever", "Medemblik", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Medemblik", "Medemblik", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Medemblik", "Den Oever", "Medemblik",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Medemblik",
"Den Oever", "Medemblik", "Medemblik", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Medemblik", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Medemblik", "Den Oever",
"Den Oever", "Ketelhaven", "Den Oever", "Den Oever"), Location.Receiver = c("Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Stavoren Ijsselmeer", "Medemblik Ijsselmeer, haven", "Medemblik Ijsselmeer, gemaal",
"Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Stavoren Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Stavoren Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Medemblik Ijsselmeer, gemaal", "Medemblik Ijsselmeer, haven",
"Medemblik Ijsselmeer, haven", "Stavoren Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer",
"Medemblik Ijsselmeer, gemaal", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, gemaal",
"Stavoren Ijsselmeer", "Medemblik Ijsselmeer, haven", "Medemblik Ijsselmeer, gemaal",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Medemblik Ijsselmeer, gemaal", "Medemblik Ijsselmeer, gemaal",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Medemblik Ijsselmeer, gemaal", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Ramspol 1 (zuid) ", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer"), Length = c(63.1, 62.3, 67.9, 65, 68.1,
65.7, 62.5, 65.7, 66.2, 63.1, 65.7, 67.9, 65.7, 65, 62.5, 68.1,
66.2, 62.3, 61.4, 56, 62.5, 65.7, 68.1, 65.7, 62.3, 63.1, 56.5,
56.5, 56, 67.9, 61.4, 65, 68.1, 65.7, 62.5, 65.7, 66.2, 62.3,
67.9, 65, 63.1, 62.5, 65.7, 68.1, 65.7, 56.5, 66.2, 63.1, 68.1,
62.5, 65.7, 65.7, 56.5, 67.9, 56, 66.2, 63.1, 61.4, 65.7, 68.1,
65.7, 62.5, 56.5, 61.4, 56, 63.1, 66.2, 63.1, 70, 67.9, 62.8,
65.7, 65.7, 62.5, 68.1, 62.8, 63.1, 56, 61.3, 63.1, 65.7, 62.5,
68.1, 65.7, 56, 63.1, 66.2, 67.9, 61.3, 56.5, 62.5, 65.7, 65.7,
68.1, 56.5, 63.1, 66.2, 48.2, 65, 67.9), Weight = c(3515, 2944,
4553, 4112, 4868, 4105, 3404, 3998, 4029, 3535, 4105, 4553, 3998,
4112, 3404, 4868, 4029, 2944, 3429, 2465, 3404, 3998, 4868, 4105,
2944, 3535, 2565, 2565, 2465, 4553, 3429, 4112, 4868, 4105, 3404,
3998, 4029, 2944, 4553, 4112, 3535, 3404, 4105, 4868, 3998, 2565,
4029, 3515, 4868, 3404, 4105, 3998, 2565, 4553, 2465, 4029, 3535,
3429, 4105, 4868, 3998, 3404, 2565, 3429, 2465, 3535, 4029, 3515,
4402, 4553, 3466, 4105, 3998, 3404, 4868, 3466, 3535, 2465, 2846,
3515, 3998, 3404, 4868, 4105, 2465, 3515, 4029, 4553, 2846, 2565,
3404, 3998, 4105, 4868, 2565, 3515, 4029, 1421, 4112, 4553)), row.names = c(716209L,
1073805L, 1019330L, 812249L, 987220L, 934268L, 840464L, 1156663L,
1226152L, 795888L, 928943L, 1020561L, 1138203L, 807648L, 855925L,
966957L, 1234618L, 1085184L, 626931L, 605844L, 846794L, 1129076L,
982617L, 955912L, 1081788L, 799297L, 542223L, 525478L, 599496L,
1009592L, 629158L, 814527L, 977839L, 875687L, 842029L, 1102446L,
1229579L, 1085547L, 1000314L, 807813L, 801897L, 829339L, 885972L,
984860L, 1121520L, 539123L, 1223695L, 706154L, 973168L, 857036L,
922413L, 1131675L, 550919L, 1053493L, 589745L, 1230983L, 795265L,
628214L, 947900L, 977889L, 1127631L, 834415L, 546178L, 629343L,
594275L, 799017L, 1220587L, 722244L, 584846L, 1061698L, 684508L,
911860L, 1157213L, 857431L, 989969L, 679834L, 803111L, 588690L,
659389L, 724411L, 1168275L, 837874L, 982503L, 932847L, 586835L,
769907L, 1232536L, 1032207L, 661232L, 555049L, 846636L, 1209851L,
934974L, 984655L, 552925L, 746638L, 1229866L, 501088L, 815912L,
1020860L), class = "data.frame")
请使用 data.table
和 magrittr
(对于管道)找到以下一种可能的解决方案
Reprex
- 代码
library(data.table)
library(magrittr)
results <- setDT(df)[, Date := as.Date(Date)][] %>%
setorder(., -Date) %>%
unique(., by ="Transmitter")
或(可能是更优雅的解决方案)
results <- setDT(df)[, Date := as.Date(Date)][] %>%
unique(., by ="Transmitter", fromLast = TRUE)
- 输出
results
#> Date Transmitter Batch.location Location.Receiver
#> 1: 2019-11-20 A69-1602-59772 Den Oever Den Oever Ijsselmeer
#> 2: 2019-11-20 A69-1602-59777 Den Oever Den Oever Ijsselmeer
#> 3: 2019-11-20 A69-1602-59773 Den Oever Den Oever Ijsselmeer
#> 4: 2019-11-20 A69-1602-59774 Den Oever Den Oever Ijsselmeer
#> 5: 2019-11-20 A69-1602-59759 Medemblik Medemblik Ijsselmeer, gemaal
#> 6: 2019-11-20 A69-1602-59769 Den Oever Den Oever Ijsselmeer
#> 7: 2019-11-20 A69-1602-59778 Den Oever Den Oever Ijsselmeer
#> 8: 2019-11-20 A69-1602-59756 Ketelhaven Ramspol 1 (zuid)
#> 9: 2019-11-20 A69-1602-59771 Den Oever Den Oever Ijsselmeer
#> 10: 2019-11-20 A69-1602-59775 Den Oever Den Oever Ijsselmeer
#> 11: 2019-11-19 A69-1602-59761 Medemblik Medemblik Ijsselmeer, haven
#> 12: 2019-11-19 A69-1602-59767 Medemblik Medemblik Ijsselmeer, gemaal
#> 13: 2019-11-18 A69-1602-59768 Medemblik Medemblik Ijsselmeer, gemaal
#> 14: 2019-11-18 A69-1602-59770 Den Oever Stavoren Ijsselmeer
#> 15: 2019-11-17 A69-1602-59765 Medemblik Medemblik Ijsselmeer, haven
#> 16: 2019-11-17 A69-1602-59760 Medemblik Medemblik Ijsselmeer, haven
#> 17: 2019-11-14 A69-1602-59776 Den Oever Den Oever Ijsselmeer
#> Length Weight
#> 1: 62.5 3404
#> 2: 65.7 3998
#> 3: 65.7 4105
#> 4: 68.1 4868
#> 5: 56.5 2565
#> 6: 63.1 3515
#> 7: 66.2 4029
#> 8: 48.2 1421
#> 9: 65.0 4112
#> 10: 67.9 4553
#> 11: 56.0 2465
#> 12: 61.3 2846
#> 13: 62.8 3466
#> 14: 63.1 3535
#> 15: 61.4 3429
#> 16: 70.0 4402
#> 17: 62.3 2944
由 reprex package (v2.0.1)
于 2021-12-16 创建
使用 ave
.
dat[with(dat, as.logical(ave(as.numeric(Date), Transmitter, FUN=\(x) x == max(x)))), ]
# Date Transmitter Batch.location Location.Receiver Length Weight
# 1085547 2019-11-14 A69-1602-59776 Den Oever Den Oever Ijsselmeer 62.3 2944
# 629343 2019-11-17 A69-1602-59765 Medemblik Medemblik Ijsselmeer, haven 61.4 3429
# 584846 2019-11-17 A69-1602-59760 Medemblik Medemblik Ijsselmeer, haven 70.0 4402
# 679834 2019-11-18 A69-1602-59768 Medemblik Medemblik Ijsselmeer, gemaal 62.8 3466
# 803111 2019-11-18 A69-1602-59770 Den Oever Stavoren Ijsselmeer 63.1 3535
# 586835 2019-11-19 A69-1602-59761 Medemblik Medemblik Ijsselmeer, haven 56.0 2465
# 661232 2019-11-19 A69-1602-59767 Medemblik Medemblik Ijsselmeer, gemaal 61.3 2846
# 846636 2019-11-20 A69-1602-59772 Den Oever Den Oever Ijsselmeer 62.5 3404
# 1209851 2019-11-20 A69-1602-59777 Den Oever Den Oever Ijsselmeer 65.7 3998
# 934974 2019-11-20 A69-1602-59773 Den Oever Den Oever Ijsselmeer 65.7 4105
# 984655 2019-11-20 A69-1602-59774 Den Oever Den Oever Ijsselmeer 68.1 4868
# 552925 2019-11-20 A69-1602-59759 Medemblik Medemblik Ijsselmeer, gemaal 56.5 2565
# 746638 2019-11-20 A69-1602-59769 Den Oever Den Oever Ijsselmeer 63.1 3515
# 1229866 2019-11-20 A69-1602-59778 Den Oever Den Oever Ijsselmeer 66.2 4029
# 501088 2019-11-20 A69-1602-59756 Ketelhaven Ramspol 1 (zuid) 48.2 1421
# 815912 2019-11-20 A69-1602-59771 Den Oever Den Oever Ijsselmeer 65.0 4112
# 1020860 2019-11-20 A69-1602-59775 Den Oever Den Oever Ijsselmeer 67.9 4553
我有一个包含发射器代码和相应日期的列。我想通过选择所有具有最新日期和其余列的唯一发射器代码来缩小我的数据集。因此,例如,如果发射器代码:A69-1602-59778 有日期(2019-11-11;2019-11-12;2019-11-13),我只想要 2019-11-13 和相应的发射器代码。我怎样才能做到这一点?
我应该得到一个包含 119 行(119 个唯一发射器代码)和相应最新日期的数据框。注意:Dput 可能不包含所有发射器代码,因为它是一个大型数据集。
我的数据:
structure(list(Date = structure(c(18211, 18211, 18211, 18211,
18211, 18211, 18211, 18211, 18211, 18211, 18212, 18212, 18212,
18212, 18212, 18212, 18212, 18212, 18212, 18212, 18213, 18213,
18213, 18213, 18213, 18213, 18213, 18213, 18213, 18213, 18213,
18213, 18214, 18214, 18214, 18214, 18214, 18214, 18214, 18214,
18215, 18215, 18215, 18215, 18215, 18215, 18215, 18215, 18216,
18216, 18216, 18216, 18216, 18216, 18216, 18216, 18216, 18216,
18217, 18217, 18217, 18217, 18217, 18217, 18217, 18217, 18217,
18217, 18217, 18217, 18217, 18218, 18218, 18218, 18218, 18218,
18218, 18218, 18218, 18218, 18219, 18219, 18219, 18219, 18219,
18219, 18219, 18219, 18219, 18219, 18220, 18220, 18220, 18220,
18220, 18220, 18220, 18220, 18220, 18220), class = "Date"), Transmitter = c("A69-1602-59769",
"A69-1602-59776", "A69-1602-59775", "A69-1602-59771", "A69-1602-59774",
"A69-1602-59773", "A69-1602-59772", "A69-1602-59777", "A69-1602-59778",
"A69-1602-59770", "A69-1602-59773", "A69-1602-59775", "A69-1602-59777",
"A69-1602-59771", "A69-1602-59772", "A69-1602-59774", "A69-1602-59778",
"A69-1602-59776", "A69-1602-59765", "A69-1602-59761", "A69-1602-59772",
"A69-1602-59777", "A69-1602-59774", "A69-1602-59773", "A69-1602-59776",
"A69-1602-59770", "A69-1602-59759", "A69-1602-59759", "A69-1602-59761",
"A69-1602-59775", "A69-1602-59765", "A69-1602-59771", "A69-1602-59774",
"A69-1602-59773", "A69-1602-59772", "A69-1602-59777", "A69-1602-59778",
"A69-1602-59776", "A69-1602-59775", "A69-1602-59771", "A69-1602-59770",
"A69-1602-59772", "A69-1602-59773", "A69-1602-59774", "A69-1602-59777",
"A69-1602-59759", "A69-1602-59778", "A69-1602-59769", "A69-1602-59774",
"A69-1602-59772", "A69-1602-59773", "A69-1602-59777", "A69-1602-59759",
"A69-1602-59775", "A69-1602-59761", "A69-1602-59778", "A69-1602-59770",
"A69-1602-59765", "A69-1602-59773", "A69-1602-59774", "A69-1602-59777",
"A69-1602-59772", "A69-1602-59759", "A69-1602-59765", "A69-1602-59761",
"A69-1602-59770", "A69-1602-59778", "A69-1602-59769", "A69-1602-59760",
"A69-1602-59775", "A69-1602-59768", "A69-1602-59773", "A69-1602-59777",
"A69-1602-59772", "A69-1602-59774", "A69-1602-59768", "A69-1602-59770",
"A69-1602-59761", "A69-1602-59767", "A69-1602-59769", "A69-1602-59777",
"A69-1602-59772", "A69-1602-59774", "A69-1602-59773", "A69-1602-59761",
"A69-1602-59769", "A69-1602-59778", "A69-1602-59775", "A69-1602-59767",
"A69-1602-59759", "A69-1602-59772", "A69-1602-59777", "A69-1602-59773",
"A69-1602-59774", "A69-1602-59759", "A69-1602-59769", "A69-1602-59778",
"A69-1602-59756", "A69-1602-59771", "A69-1602-59775"), Batch.location = c("Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Medemblik", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Medemblik", "Medemblik", "Medemblik", "Den Oever", "Medemblik",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Medemblik",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Medemblik", "Den Oever", "Medemblik", "Den Oever",
"Den Oever", "Medemblik", "Den Oever", "Den Oever", "Den Oever",
"Den Oever", "Medemblik", "Medemblik", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Medemblik", "Den Oever", "Medemblik",
"Den Oever", "Den Oever", "Den Oever", "Den Oever", "Medemblik",
"Den Oever", "Medemblik", "Medemblik", "Den Oever", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Medemblik", "Medemblik", "Den Oever",
"Den Oever", "Den Oever", "Den Oever", "Medemblik", "Den Oever",
"Den Oever", "Ketelhaven", "Den Oever", "Den Oever"), Location.Receiver = c("Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Stavoren Ijsselmeer", "Medemblik Ijsselmeer, haven", "Medemblik Ijsselmeer, gemaal",
"Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Stavoren Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Stavoren Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Medemblik Ijsselmeer, gemaal", "Medemblik Ijsselmeer, haven",
"Medemblik Ijsselmeer, haven", "Stavoren Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven", "Den Oever Ijsselmeer",
"Medemblik Ijsselmeer, gemaal", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, gemaal",
"Stavoren Ijsselmeer", "Medemblik Ijsselmeer, haven", "Medemblik Ijsselmeer, gemaal",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Medemblik Ijsselmeer, haven",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Medemblik Ijsselmeer, gemaal", "Medemblik Ijsselmeer, gemaal",
"Den Oever Ijsselmeer", "Den Oever Ijsselmeer", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Medemblik Ijsselmeer, gemaal", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer", "Ramspol 1 (zuid) ", "Den Oever Ijsselmeer",
"Den Oever Ijsselmeer"), Length = c(63.1, 62.3, 67.9, 65, 68.1,
65.7, 62.5, 65.7, 66.2, 63.1, 65.7, 67.9, 65.7, 65, 62.5, 68.1,
66.2, 62.3, 61.4, 56, 62.5, 65.7, 68.1, 65.7, 62.3, 63.1, 56.5,
56.5, 56, 67.9, 61.4, 65, 68.1, 65.7, 62.5, 65.7, 66.2, 62.3,
67.9, 65, 63.1, 62.5, 65.7, 68.1, 65.7, 56.5, 66.2, 63.1, 68.1,
62.5, 65.7, 65.7, 56.5, 67.9, 56, 66.2, 63.1, 61.4, 65.7, 68.1,
65.7, 62.5, 56.5, 61.4, 56, 63.1, 66.2, 63.1, 70, 67.9, 62.8,
65.7, 65.7, 62.5, 68.1, 62.8, 63.1, 56, 61.3, 63.1, 65.7, 62.5,
68.1, 65.7, 56, 63.1, 66.2, 67.9, 61.3, 56.5, 62.5, 65.7, 65.7,
68.1, 56.5, 63.1, 66.2, 48.2, 65, 67.9), Weight = c(3515, 2944,
4553, 4112, 4868, 4105, 3404, 3998, 4029, 3535, 4105, 4553, 3998,
4112, 3404, 4868, 4029, 2944, 3429, 2465, 3404, 3998, 4868, 4105,
2944, 3535, 2565, 2565, 2465, 4553, 3429, 4112, 4868, 4105, 3404,
3998, 4029, 2944, 4553, 4112, 3535, 3404, 4105, 4868, 3998, 2565,
4029, 3515, 4868, 3404, 4105, 3998, 2565, 4553, 2465, 4029, 3535,
3429, 4105, 4868, 3998, 3404, 2565, 3429, 2465, 3535, 4029, 3515,
4402, 4553, 3466, 4105, 3998, 3404, 4868, 3466, 3535, 2465, 2846,
3515, 3998, 3404, 4868, 4105, 2465, 3515, 4029, 4553, 2846, 2565,
3404, 3998, 4105, 4868, 2565, 3515, 4029, 1421, 4112, 4553)), row.names = c(716209L,
1073805L, 1019330L, 812249L, 987220L, 934268L, 840464L, 1156663L,
1226152L, 795888L, 928943L, 1020561L, 1138203L, 807648L, 855925L,
966957L, 1234618L, 1085184L, 626931L, 605844L, 846794L, 1129076L,
982617L, 955912L, 1081788L, 799297L, 542223L, 525478L, 599496L,
1009592L, 629158L, 814527L, 977839L, 875687L, 842029L, 1102446L,
1229579L, 1085547L, 1000314L, 807813L, 801897L, 829339L, 885972L,
984860L, 1121520L, 539123L, 1223695L, 706154L, 973168L, 857036L,
922413L, 1131675L, 550919L, 1053493L, 589745L, 1230983L, 795265L,
628214L, 947900L, 977889L, 1127631L, 834415L, 546178L, 629343L,
594275L, 799017L, 1220587L, 722244L, 584846L, 1061698L, 684508L,
911860L, 1157213L, 857431L, 989969L, 679834L, 803111L, 588690L,
659389L, 724411L, 1168275L, 837874L, 982503L, 932847L, 586835L,
769907L, 1232536L, 1032207L, 661232L, 555049L, 846636L, 1209851L,
934974L, 984655L, 552925L, 746638L, 1229866L, 501088L, 815912L,
1020860L), class = "data.frame")
请使用 data.table
和 magrittr
(对于管道)找到以下一种可能的解决方案
Reprex
- 代码
library(data.table)
library(magrittr)
results <- setDT(df)[, Date := as.Date(Date)][] %>%
setorder(., -Date) %>%
unique(., by ="Transmitter")
或(可能是更优雅的解决方案)
results <- setDT(df)[, Date := as.Date(Date)][] %>%
unique(., by ="Transmitter", fromLast = TRUE)
- 输出
results
#> Date Transmitter Batch.location Location.Receiver
#> 1: 2019-11-20 A69-1602-59772 Den Oever Den Oever Ijsselmeer
#> 2: 2019-11-20 A69-1602-59777 Den Oever Den Oever Ijsselmeer
#> 3: 2019-11-20 A69-1602-59773 Den Oever Den Oever Ijsselmeer
#> 4: 2019-11-20 A69-1602-59774 Den Oever Den Oever Ijsselmeer
#> 5: 2019-11-20 A69-1602-59759 Medemblik Medemblik Ijsselmeer, gemaal
#> 6: 2019-11-20 A69-1602-59769 Den Oever Den Oever Ijsselmeer
#> 7: 2019-11-20 A69-1602-59778 Den Oever Den Oever Ijsselmeer
#> 8: 2019-11-20 A69-1602-59756 Ketelhaven Ramspol 1 (zuid)
#> 9: 2019-11-20 A69-1602-59771 Den Oever Den Oever Ijsselmeer
#> 10: 2019-11-20 A69-1602-59775 Den Oever Den Oever Ijsselmeer
#> 11: 2019-11-19 A69-1602-59761 Medemblik Medemblik Ijsselmeer, haven
#> 12: 2019-11-19 A69-1602-59767 Medemblik Medemblik Ijsselmeer, gemaal
#> 13: 2019-11-18 A69-1602-59768 Medemblik Medemblik Ijsselmeer, gemaal
#> 14: 2019-11-18 A69-1602-59770 Den Oever Stavoren Ijsselmeer
#> 15: 2019-11-17 A69-1602-59765 Medemblik Medemblik Ijsselmeer, haven
#> 16: 2019-11-17 A69-1602-59760 Medemblik Medemblik Ijsselmeer, haven
#> 17: 2019-11-14 A69-1602-59776 Den Oever Den Oever Ijsselmeer
#> Length Weight
#> 1: 62.5 3404
#> 2: 65.7 3998
#> 3: 65.7 4105
#> 4: 68.1 4868
#> 5: 56.5 2565
#> 6: 63.1 3515
#> 7: 66.2 4029
#> 8: 48.2 1421
#> 9: 65.0 4112
#> 10: 67.9 4553
#> 11: 56.0 2465
#> 12: 61.3 2846
#> 13: 62.8 3466
#> 14: 63.1 3535
#> 15: 61.4 3429
#> 16: 70.0 4402
#> 17: 62.3 2944
由 reprex package (v2.0.1)
于 2021-12-16 创建使用 ave
.
dat[with(dat, as.logical(ave(as.numeric(Date), Transmitter, FUN=\(x) x == max(x)))), ]
# Date Transmitter Batch.location Location.Receiver Length Weight
# 1085547 2019-11-14 A69-1602-59776 Den Oever Den Oever Ijsselmeer 62.3 2944
# 629343 2019-11-17 A69-1602-59765 Medemblik Medemblik Ijsselmeer, haven 61.4 3429
# 584846 2019-11-17 A69-1602-59760 Medemblik Medemblik Ijsselmeer, haven 70.0 4402
# 679834 2019-11-18 A69-1602-59768 Medemblik Medemblik Ijsselmeer, gemaal 62.8 3466
# 803111 2019-11-18 A69-1602-59770 Den Oever Stavoren Ijsselmeer 63.1 3535
# 586835 2019-11-19 A69-1602-59761 Medemblik Medemblik Ijsselmeer, haven 56.0 2465
# 661232 2019-11-19 A69-1602-59767 Medemblik Medemblik Ijsselmeer, gemaal 61.3 2846
# 846636 2019-11-20 A69-1602-59772 Den Oever Den Oever Ijsselmeer 62.5 3404
# 1209851 2019-11-20 A69-1602-59777 Den Oever Den Oever Ijsselmeer 65.7 3998
# 934974 2019-11-20 A69-1602-59773 Den Oever Den Oever Ijsselmeer 65.7 4105
# 984655 2019-11-20 A69-1602-59774 Den Oever Den Oever Ijsselmeer 68.1 4868
# 552925 2019-11-20 A69-1602-59759 Medemblik Medemblik Ijsselmeer, gemaal 56.5 2565
# 746638 2019-11-20 A69-1602-59769 Den Oever Den Oever Ijsselmeer 63.1 3515
# 1229866 2019-11-20 A69-1602-59778 Den Oever Den Oever Ijsselmeer 66.2 4029
# 501088 2019-11-20 A69-1602-59756 Ketelhaven Ramspol 1 (zuid) 48.2 1421
# 815912 2019-11-20 A69-1602-59771 Den Oever Den Oever Ijsselmeer 65.0 4112
# 1020860 2019-11-20 A69-1602-59775 Den Oever Den Oever Ijsselmeer 67.9 4553