You are using i as both the value to be stored in the vector and the index of the position in the vector. That is, you are storing 7 in the 7th position. A version the works is this:
numbers <- vector("numeric",length=4)
Vec <- c(2,7,9,12)
for (i in seq_along(numbers)){
numbers[i] <- Vec[i]
}
numbers
[1] 2 7 9 12
That is a roundabout way of doing
Vec <- c(2,7,9,12)
numbers <- Vec