> On May 13, 2016, at 6:56 AM, ch.elahe via R-help <r-help@r-project.org> wrote:
> 
> Hi all,
> I have a df which a part of this is:
> 
>   TSTMax     :int 213 228 227 281
>   TSTMin     :int 149 167 158 176 
>   TSTMean    :Factor w/94 levels "100,2" , "104,3" , ...
> I want to change the TSTMean into numeric but by using 
> as.numeric(as.character(df$TSTMean)) I get too many NAs.
> Is there a way to change TSTMean into numeric without those NAs?
> I want TSTMean to be at the end like:
> 
>   TSTMean  :int 100.2 104.3 .....
> 
> Thanks for any help
> Elahe

Hi,

First, how did you get the data into R? 

I am going to guess that you used ?read.table or ?read.csv, which by default, 
will convert character values into factors (see the 'as.is' argument).

Second, by default, the decimal character in R is a period ('.') and you appear 
to be importing European values where the decimal character is a comma (','). 
Thus, take note of the 'dec' argument in read.table/read.csv and modify that to 
dec = "," in your function call.

The NA values are the result of converting character values that cannot be 
coerced to numeric due to the commas:

> as.numeric("100,2")
[1] NA
Warning message:
NAs introduced by coercion 

> as.numeric("100.2")
[1] 100.2

Regards,

Marc Schwartz

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to