[R] convert factor to numeric in bulk

arun smartpink111 at yahoo.com
Thu Dec 5 23:04:23 CET 2013


Hi,
Try:
library(XML)
x1 <- readHTMLTable('http://www.fns.usda.gov/pd/15SNAPpartPP.htm',skip.rows=c(1:2,4,58:60),colClasses=c("character",rep("FormattedNumber",5)),stringsAsFactors=FALSE)[[1]]
colnames(x1) <- gsub("NULL\\.","",colnames(x1))
 str(x1)
#'data.frame':    53 obs. of  6 variables:
# $ State/Territory: chr  "Alabama" "Alaska" "Arizona" "Arkansas" ...
# $ FY 2008        : num  571591 56977 627660 377883 2220127 ...
# $ FY 2009        : num  679138 64385 813987 411153 2670341 ...
# $ FY 2010        : num  805095 76445 1018171 466598 3238548 ...
# $ FY 2011        : num  920365 86044 1067617 486451 3672980 ...
# $ FY 2012        : num  910244 91298 1123974 502125 3964221 ...

A.K.

Hello I am trying to import a html table as data.frame and the columns
 come in as factors. I need to convert them to numeric, which I can do 
but when I use the single method it would take long and converting them 
to matrix trims the numbers.  Can someone explain how to convert all the
 numbers in columns 2:6 into numerics that hold up the right numeric 
length? 

nms = c("State/Territory" , "FY 2008"  ,"FY 2009",	"FY 2010",	"FY 2011",	"FY 2012") 
x <- data.frame(readHTMLTable('http://www.fns.usda.gov/pd/15SNAPpartPP.htm'), stringsAsFactors = F) 
x <- x[5:57,] 
names(x) <- nms 
snap.partpp <- x 
# this is what i have tried to do to solve this problem but it does the conversion but changes the values of the numbers 

x <- data.frame(readHTMLTable('http://www.fns.usda.gov/pd/15SNAPpartPP.htm'), stringsAsFactors = F) 
y <- x[5:57, 1] 
x <- data.matrix(x[5:57,2:6]) 
xy <- data.frame(y, x) 
names(xy) <- nms 
snap.avghh <- xy



More information about the R-help mailing list