373 Stimmen

Wie kann ich die wissenschaftliche Notation deaktivieren?

Ich habe einen Datenrahmen mit einer Spalte mit p-Werten, und ich möchte eine Auswahl für diese p-Werte treffen.

> pvalues_anova
[1] 9.693919e-01 9.781728e-01 9.918415e-01 9.716883e-01 1.667183e-02
[6] 9.952762e-02 5.386854e-01 9.997699e-01 8.714044e-01 7.211856e-01
[11] 9.536330e-01 9.239667e-01 9.645590e-01 9.478572e-01 6.243775e-01
[16] 5.608563e-01 1.371190e-04 9.601970e-01 9.988648e-01 9.698365e-01
[21] 2.795891e-06 1.290176e-01 7.125751e-01 5.193604e-01 4.835312e-04

Auswahlverfahren:

anovatest<- results[ - which(results$pvalues_anova < 0.8) ,]

Die Funktion funktioniert wirklich gut, wenn ich sie in R verwende. Aber wenn ich sie in einer anderen Anwendung (Galaxie) ausführe, werden die Zahlen, die nicht mit e-01 z.B.. 4.835312e-04 werden nicht weggeworfen.

Gibt es eine andere Möglichkeit, p-Werte zu notieren, etwa 0.0004835312 代わりに 4.835312e-04 ?

684voto

Sacha Epskamp Punkte 44955

Mit diesem Code können Sie die wissenschaftliche Notation beim Drucken effektiv entfernen:

options(scipen=999)

24voto

Peter Punkte 1772
format(99999999,scientific = FALSE)

gibt

99999999

19voto

Zusammenfassen aller vorhandenen Antworten

(Und ich füge ein paar meiner Punkte hinzu)

Anmerkung: In der nachstehenden Erklärung, value ist die Zahl, die in einem (Integer/Float-)Format dargestellt werden soll.

Lösung 1 :

options(scipen=999)

Lösung 2 :

format(value, scientific=FALSE);

Lösung 3 :

as.integer(value);

Lösung 4 :

Sie können ganze Zahlen verwenden, die nicht in wissenschaftlicher Notation ausgedruckt werden. Sie können angeben, dass Ihre Zahl eine ganze Zahl ist, indem Sie ein "L" dahinter setzen

paste(100000L)

wird gedruckt 100000

Lösung 5 :

Strenge Kontrolle der Formatierung mit 'sprintf()'.

sprintf("%6d", 100000)

wird gedruckt 100000

Lösung 6 :

prettyNum(value, scientific = FALSE, digits = 16)

2voto

HBat Punkte 4165

Ich finde auch die prettyNum(..., scientific = FALSE) Funktion, die beim Drucken nützlich ist, wenn ich keine Nullen am Ende haben möchte. Beachten Sie, dass diese Funktionen für Druckzwecke nützlich sind, d. h., die Ausgabe dieser Funktionen sind Zeichenketten, keine Zahlen.

p_value <- c(2.45496e-5, 3e-17, 5.002e-5, 0.3, 123456789.123456789)
format(p_value, scientific = FALSE)
#> [1] "        0.00002454960000000" "        0.00000000000000003"
#> [3] "        0.00005002000000000" "        0.29999999999999999"
#> [5] "123456789.12345679104328156"

format(p_value, scientific = FALSE, drop0trailing = TRUE)
#> [1] "        0.0000245496"        "        0.00000000000000003"
#> [3] "        0.00005002"          "        0.29999999999999999"
#> [5] "123456789.12345679104328156"

# Please note that the last number's last two digits are rounded:
prettyNum(p_value, scientific = FALSE, digits = 16)
#> [1] "0.0000245496"        "0.00000000000000003" "0.00005002"
#> [4] "0.3"                 "123456789.1234568"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X