2017-10-19 3 views
0

Ich versuche seq() zu verwenden, um meine Pausen auf einer Handlung zu definieren. Dummy-Beispiel unten.Seq() produziert Zahlen aus winzigen Mengen (R)

ggplot(data, aes(x=cat, y=dog) + 
    scale_y_continuous(breaks=seq(-0.3, 0.3, by=0.1)) 

Aus irgendeinem Grund seq() gibt mir Ausgabenummern, die aus durch winzige Mengen sind. Dieses Verhalten tritt innerhalb und außerhalb meines Plot-Geräts auf. Wie unten gezeigt, scheint es ein Problem beim Erzeugen negativer Zahlen zu sein. Es kann sie produzieren, aber das ist der Punkt, an dem das Problem auftritt.

seq(0.3, 0.9, by=0.1) # test with positives 
seq(-0.3, 0.3, by = 0.1) # test with negatives 
format(seq(-0.3, 0.3, by = 0.1), scientific = F) # show full number 

enter image description here

las ich die Dokumentation und nichts reden über Negativen finden konnte, so bin ich nicht sicher, wie es zu beheben. Gibt es etwas, das ich falsch mache oder ausschließe? Gibt es eine Problemumgehung oder eine andere Funktion, die ich verwenden sollte?

bearbeiten als Duplikat markiert, aber das Duplikat bietet keine explizit eine Lösung dieses Problems. Hier ein paar:

# i went with this solution as given in comments to keep it all contained within seq() 
seq(-0.3, 0.3, length.out=7) 

# from the answers 
seq(-3, 3, by=1)/10 

# didn't work for my case but should work as a general rule 
round(x, digits=n) # x would be the seq(-0.3, 0.3, by = 0.1) and n=1 in my case) 
+1

Da die Frage als Duplikat markiert wurde kann ich nicht vorlegen als Antwort. Von? Seq: 'Angabe von - von und nach mit entgegengesetzten Vorzeichen ist ein Fehler.' Wie für eine Problemumgehung scheint es in Ordnung zu sein, wenn Sie seq (von = -0,3, bis = 0,3, length.out = 7) – jpshanno

+0

@jpshanno 0.3 - (-0.3) = 0.6 Das ist das gleiche Zeichen wie 0.1. Nein, das sind nur die üblichen Gleitkommazahlen FAQ. – Roland

+1

@Roland, ich glaube nicht, dass die Frage, die Sie verlinkt haben, diese Frage beantwortet. Diese Frage fragt, wie man seq() erhält, um die erwartete Ausgabe zu geben, wenn von und nach entgegengesetzte Vorzeichen sind, nicht warum sind die Zahlen nicht gleich. – jpshanno

Antwort

1

Für dieses Problem zu umgehen Sie könnten versuchen, seq (-3,3,1)/10

+0

Ihre Lösung funktioniert. Ich entschied mich für @jpshannos, weil es in Seq enthalten ist, aber da es bereits als Duplikat gekennzeichnet war, konnte ich ihm den Scheck nicht geben, also gehört alles dir. – seeellayewhy

Verwandte Themen