[R] Convert matrix to numeric

Sarah Goslee sarah.goslee at gmail.com
Wed Aug 3 21:19:10 CEST 2011


Hi Jeffrey,

On Wed, Aug 3, 2011 at 3:04 PM, Jeffrey Joh <johjeffrey at hotmail.com> wrote:
>
> I have a matrix that looks like this:
>
>
> structure(c("0.0376673981759913", "0.111066500741386", "1", "1103",
> "18", "OPEN", "DEPR", "0.0404073656092023", "0.115186044704599",
> "1", "719", "18", "OPEN", "DEPR", "0.0665342096693433", "0.197570061769498",
> "1", "1103", "18", "OPEN", "DEPR", "0.119287147905722", "0.356427096010845",
> "1", "1103", "18", "OPEN", "DEPR"), .Dim = c(7L, 4L), .Dimnames = list(
>    c("Sn", "SlnC", "housenum", "date", "hour", "flue", "pressurization"
>    ), c("10019.BLO", "1002.BLO", "10020.BLO", "10021.BLO")))

Thank you for providing a small working example.

> How do I convert rows 1-5 to numeric?  I tried mode() <- "numeric" but that doesn't change anything.

Two things are going on here. First, a matrix can only contain one kind of data.
For this example, since there are strings the whole thing has to be character.
A data frame is intended to hold different kinds of data, but each column has
to be a single type. So if you want those values to be numeric instead of
character, you'll need to transpose your matrix and convert it to a data frame.

tempdata <- structure(c("0.0376673981759913", "0.111066500741386", "1", "1103",
"18", "OPEN", "DEPR", "0.0404073656092023", "0.115186044704599",
"1", "719", "18", "OPEN", "DEPR", "0.0665342096693433", "0.197570061769498",
"1", "1103", "18", "OPEN", "DEPR", "0.119287147905722", "0.356427096010845",
"1", "1103", "18", "OPEN", "DEPR"), .Dim = c(7L, 4L), .Dimnames = list(
   c("Sn", "SlnC", "housenum", "date", "hour", "flue", "pressurization"
   ), c("10019.BLO", "1002.BLO", "10020.BLO", "10021.BLO")))

tempdata <- data.frame(t(tempdata), stringsAsFactors=FALSE)

Once you have the right kind of object, you can convert the five columns
of interest to numeric. This needs to be done a column at a time, I think:
tempdata[, 1:5] <- apply(tempdata[,1:5], 2, as.numeric)

Sarah

-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list