[R] converting values of a dataframe to numeric (where possible)

Ralikwen Balazs.Klein at gmail.com
Tue Sep 2 23:50:16 CEST 2008


Hi,
I am new to R.
I have a dataframe with many columns some of which contain genuine strings
some numerical values as strings. The dataframe is created by cast so I have
no control over the resulting data type.
I want to attach columns as aggregates of other columns to the dataframe.
Here is the solution that I came up with (after a lot of struggle):

castNum <- function(n) {
    x<-as.numeric(as.character(n))
    if (is.na(x)){      
      return(n)  
    }else{
      return(x)
    }
}
df <- data.frame(a=letters[15:17], b=c("21","NA","23"), c=10:12, d=15:17)
cbind(df,RTot=rowSums(as.data.frame(lapply(df, function(x)
castNum(x)))[2:4],na.rm=TRUE))

This works, but is full of warnings and looks extremely ugly.
Could you direct me how to achieve the same result in a more elegant way?

Thx.
Balázs



-- 
View this message in context: http://www.nabble.com/converting-values-of-a-dataframe-to-numeric-%28where-possible%29-tp19279139p19279139.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list