R - Teilmengenspalte basierend auf der Bedingung für doppelte Zeilen

Ich habe einen Datenrahmen mit einer ID-Spalte, die mit Standortzählungen wiederholt wird. Ich möchte wissen, wie ich die doppelten ID-Datensätze nur entfernen kann, wenn der Site_Count-Datensatz größer als 0 ist.

Generate DF:

DF <- data.frame(
    'ID' = sample(100:300, 100, replace=T),
    'Site_count' = sample(0:1, 100, replace=T)
)

Mein Versuch an der Teilmenge:

subset(DF[!duplicated(DF$ID),], site_count > 0)

Aber in diesem Fall werden alle 0 Site-Zählungen entfernt. Ich möchte diese Teilmenge nur dann entfernen, wenn es einen doppelten Datensatz mit mehr als 0 Site-Zählungen gibt.

Wünschenswerte Ergebnisse sehen ungefähr so aus (beachten Sie, dass Site-IDs mit 0 Site-Anzahl, aber keine doppelten IDs mit 0 und einer anderen Site-Anzahl vorhanden sind):

ID    site count
--    ----------
1        0
2        1
3        1
4        0
5        5