Hi everyone,
I have a simple problem but don´t know how to solve it.
I read in a table from a text file that looks like that:
-3,932200E-01 -2,000000E-01 4,999995E-02
-3,932099E-01 -1,000000E-01 3,999996E-02
-3,932000E-01 0,000000E+00 3,999996E-02
-3,931899E-01 -1,000000E-01 4,499996E-02
-3,931800E-01 -1,000000E-01 4,499996E-02
-3,931699E-01 3,000000E-01 3,499996E-02
-3,931599E-01 -3,000000E-01 3,999996E-02
-3,931500E-01 0,000000E+00 2,499996E-02
-3,931399E-01 0,000000E+00 2,499996E-02
-3,931300E-01 0,000000E+00 3,499996E-02
but when I try to to plot the values from the second column, the plot shows the
wrong values.
That's what I do in R:
read.table("C:\\Messdaten\\epp1_1_ver.txt")->sh1
> sh1[1:10,2]
[1] -2.000000E-01 -1.000000E-01 0.000000E+00 -1.000000E-01 -1.000000E-01
3.000000E-01 -3.000000E-01 0.000000E+00
[9] 0.000000E+00 0.000000E+00
1707 Levels: -1,000000E-01 -1,000000E+00 -1,000000E+01 -1,002000E+02
-1,003000E+02 -1,004000E+02 ... 9,980000E+01
> sh1[1:10,2]->a
> cbind(x=seq(1,10,by=1),y=a)
x y
[1,] 1 436
[2,] 2 321
[3,] 3 1007
[4,] 4 321
[5,] 5 321
[6,] 6 1353
[7,] 7 548
[8,] 8 1007
[9,] 9 1007
[10,] 10 1007
Why do I get those values? Why is for example -2,000000E-01 equal to 436?
I need to convert the values from -2,000000E-01 to -0.2 - how can I do this?
Thank you for your suggestions,
Andreas Kraft
[[alternative HTML version deleted]]
Stephen D. Weigand
2005-May-24 04:20 UTC
[R] How to convert a character string to a number
Dear Andreas, On May 23, 2005, at 4:56 AM, Kraft, Andreas wrote:> Hi everyone, > I have a simple problem but don??t know how to solve it. > I read in a table from a text file that looks like that: > > -3,932200E-01 -2,000000E-01 4,999995E-02 > -3,932099E-01 -1,000000E-01 3,999996E-02...> -3,931300E-01 0,000000E+00 3,499996E-02 > > but when I try to to plot the values from the > second column, the plot shows the wrong values. > > That's what I do in R: > read.table("C:\\Messdaten\\epp1_1_ver.txt")->sh1 >Read the help for read.table() and use dec = ",". Also, before you correct the call to read.table, if you enter R> str(sh1) you'll see something like: R> str(sh1) `data.frame': 10 obs. of 3 variables: $ V1: Factor w/ 10 levels "-3,931300E-01",..: 10 9 8 7 6 5 4 3 2 1 $ V2: Factor w/ 5 levels "-1,000000E-01",..: 2 1 4 1 1 5 3 4 4 4 $ V3: Factor w/ 5 levels "2,499996E-02",..: 5 3 3 4 4 2 3 1 1 2 which gives you some very helpful information. In particular, it shows that sh1 consists of factors. Good luck, Stephen>> sh1[1:10,2] > > [1] -2.000000E-01 -1.000000E-01 0.000000E+00 -1.000000E-01 > -1.000000E-01 3.000000E-01 -3.000000E-01 0.000000E+00 > > [9] 0.000000E+00 0.000000E+00 > > 1707 Levels: -1,000000E-01 -1,000000E+00 -1,000000E+01 -1,002000E+02 > -1,003000E+02 -1,004000E+02 ... 9,980000E+01 > >> sh1[1:10,2]->a > >> cbind(x=seq(1,10,by=1),y=a) > > x y > > [1,] 1 436 > > [2,] 2 321 > > [3,] 3 1007 > > [4,] 4 321 > > [5,] 5 321 > > [6,] 6 1353 > > [7,] 7 548 > > [8,] 8 1007 > > [9,] 9 1007 > > [10,] 10 1007 > > > > Why do I get those values? Why is for example -2,000000E-01 equal to > 436? > > I need to convert the values from -2,000000E-01 to -0.2 - how can I > do this? > > > > Thank you for your suggestions, > > > > Andreas Kraft > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >