I would use a comparison to return TRUE or FALSE about which numbers are in the data frame column and then use those TRUE/FALSE values to make a subset of the candidate numbers.
DF <- data.frame(numbers=c(5,6,3,4,7,1,2,8,10,5,2,7,1,8,10,3,2))
TrueFalse <- !c(1:10) %in% DF$numbers #Returns TRUE if a number is missing.
c(1:10)[TrueFalse] #Returns 9