[R] using read.csv2()

Duncan Murdoch murdoch.duncan at gmail.com
Thu Sep 29 11:40:18 CEST 2016


On 29/09/2016 4:59 AM, Voirin Pascale wrote:
> Hello,
>
> I have a problem with the variable type defined by reading a csv file with read.csv2.
>
> Here is a test file saved as < test.csv > :
> var1;var2;var3
> TI;1995;4.5
> VD;1990;4.8
> FR;1994;3.9
> VS;1993;5.1
> FR;1995;4.7
> FR;1992;5.8
>
> That  I read in R with :
> read.csv2("test.csv")->don;don
> don$var3
> ## [1] 4.5 4.8 3.9 5.1 4.7 5.8
> ## Levels: 3.9 4.5 4.7 4.8 5.1 5.8
>
> as.double(don$var3)
> ## [1] 2 4 1 5 3 6
>
> Why is it by default a <levels> type ? And how can I get  the decimal value for var3

It's a "factor".  read.csv2() defaults to a decimal separator of "," 
rather than ".", so the last column doesn't look like numbers, and 
they're being read as character strings, and then automatically 
converted to a factor.  Reading as

read.csv2("test.csv", dec = ".")

should give you what you want, or you can convert after the fact with

as.numeric(as.character(don$var3))

Duncan Murdoch


>
> Thanks a lot for your answer.
> With my best regards,
>
> Pascale Voirin
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list