As csgillespie said. strAsAsFactors defaults to TRUE, which converts any text to a factor. Therefore, even after deleting the text, you still have a factor in your data frame.
Now about conversion, there is a better way to do this. So I put it here as a link:
> x <- factor(sample(4:8,10,replace=T)) > x [1] 6 4 8 6 7 6 8 5 8 4 Levels: 4 5 6 7 8 > as.numeric(levels(x))[x] [1] 6 4 8 6 7 6 8 5 8 4
To show that it works.
Timings:
> x <- factor(sample(4:8,500000,replace=T)) > system.time(as.numeric(as.character(x))) user system elapsed 0.11 0.00 0.11 > system.time(as.numeric(levels(x))[x]) user system elapsed 0 0 0
This is a big improvement, but not always a bottleneck. This is important, however, if you have a large data frame and many columns to convert.
Joris Meys Feb 08 '11 at 10:23 2011-02-08 10:23
source share