if statement to delete all subsequent rows after a time point

Hi, welcome to the forum.

I think we need to see some sample data. I'd suggest having a look at FAQ: How to do a minimal reproducible example ( reprex ) for beginners

A handy way to supply some sample data is the dput() function. In the case of a large dataset something like dput(head(mydata, 100)) should supply the data we need.

I have never encountered drop before but it is not doing what you think it is. See

?drop

At a quick guess you may want

subset(df, df$Endpoint == "None" & df$VISITDATE > df$DATE)