Nun scheint die Konvertierung mit as.double
zu funktionieren, aber dann wird das Hinzufügen einer nicht ganzzahligen Zahl wieder auf ganzzahlig abgeschnitten. Zum Beispiel ist dies das Setup:Integer-Spalte, die mit RMySQL abgerufen wurde, kann nicht in Double konvertiert werden
geo <- fetch.data.from.mysql(...)
> head(geo$total_time)
[1] 1586 165 5339 1586 2895 1178
> typeof(geo$total_time)
[1] "integer"
> typeof(as.double(geo$total_time))
[1] "double"
Bis jetzt ist alles wie erwartet. Aber dann, wenn Sie versuchen, 0,5, um es hinzuzufügen, es sagt, es ist eine doppelte ist, aber es kürzt die Dezimalstellen wie eine ganze Zahl:
> head(geo$total_time + 0.5)
[1] 1586 166 5340 1586 2896 1178
> head(as.double(geo$total_time) + 0.5)
[1] 1586 166 5340 1586 2896 1178
> typeof(geo$total_time + 0.5)
[1] "double"
Die Spalte, in der MySQL-Datenbank ist: `total_time` int(32) default NULL
Ich brauche wirklich fügen Sie etwas Jitter zu diesem Vektor hinzu, so macht mich das verrückt. Jede Hilfe wäre willkommen. Schließlich Session():
> sessionInfo()
R version 2.12.0 (2010-10-15)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] RMySQL_0.7-5 DBI_0.2-5 ggplot2_0.8.8 proto_0.3-8 reshape_0.8.3 plyr_1.2.1
loaded via a namespace (and not attached):
[1] tools_2.12.0
+1 Das sollte mein Vorschlag @Daniel sein, denn es gibt keine Möglichkeit, dass ich für Sie so arbeite, wie Sie es vorgeführt haben, ohne dabei etwas an Präzision beim * Drucken * zu verlieren. Jetzt wäre eine gute Zeit, um diese Anweisung aus Ihrem '.Rprofile zu entfernen ... (Akzeptieren Sie Ihre eigene Antwort übrigens). –
Es wäre schön, wenn es eine Möglichkeit geben würde, R zu sagen, mindestens eine Dezimalzahl zu drucken Punkt für nicht ganzzahlige Zahlen, unabhängig von Ziffern. –