Your Age is a factor. The following code illustrates the problem. I set the data frame's Age column to be a factor. When I print it out, the values look like numbers but those are character representations of the underlying factor levels. The Levels display of the printing or DF$Age shows that the levels are in alphabetical order, 1 is followed by 10 and 2 is the 6th entry. When I run the factor through as.numeric(), the result is the ordering of the levels. 1 maps to 1 but 2 maps to 6 and 10 maps to 2. When I run DF$Age through as.character() and then as.numeric() the result is what you expected in your data. The factor element whose character representation was 2 ends up with the numeric value of 2.
DF <- data.frame(Age = c("1", "2", "3", "10", "11", "100", "101"),
+ stringsAsFactors = TRUE)
> DF$Age
[1] 1 2 3 10 11 100 101
Levels: 1 10 100 101 11 2 3
> as.numeric(DF$Age)
[1] 1 6 7 2 5 3 4
> as.numeric(as.character(DF$Age))
[1] 1 2 3 10 11 100 101
The best solution to your problem would be to change the process of reading in the data so that Age is numeric. How are the data getting into the data frame?
If you cannot change how the data are read into the data frame, use as.character() followed by as.numeric() to get the correct result.