data.table. 'data.frame' 'data.table' (setDT(DF)). "", , (tail(.SD, -1)), .SD - Subset of Data.table. , "" . , if/else, , if 1 (.N>1), else (.SD).
library(data.table)
setDT(DF)[, if(.N>1) tail(.SD,-1) else .SD , by = User]
, @MrFlick dplyr, duplicated .N ( ). "N", "", (.N==1), , TRUE N duplicated "User", duplicated TRUE duplicate, FALSE.
setDT(DF)[DF[, N:=.N==1, by = User][, N|duplicated(User)]][,N:=NULL][]
base R ave ('indx2'), , length "" 1 . duplicated, , .
indx2 <- with(DF, ave(seq_along(User), User, FUN=length)==1)
DF[duplicated(DF$User)|indx2,]