instead of trying as.vector try as.matrix
my suggestion is motivated by the following:
> class(as.vector(data.frame(a=1)))
[1] "data.frame"
> class(as.matrix(data.frame(a=1)))
[1] "matrix"
> is.numeric(as.vector(data.frame(a=1)))
[1] FALSE
> is.numeric(as.matrix(data.frame(a=1)))
[1] TRUE