Czy mogę zmusić R do używania zwykłych liczb zamiast używania e+10
podobnej notacji? Mam:
1.810032e+09
# and
4
w tym samym wektorze i chcesz zobaczyć:
1810032000
# and
4
Tworzę dane wyjściowe dla staroświeckiego programu i muszę napisać plik tekstowy przy użyciu cat
. Do tej pory działa dobrze, ale po prostu nie mogę tam użyć e+10
zapisu.
r
number-formatting
options
scientific-notation
defaults
Matt Bannert
źródło
źródło
Odpowiedzi:
To jest trochę szary obszar. Musisz pamiętać, że R zawsze wywołuje metodę drukowania, a te metody drukowania słuchają niektórych opcji. W tym „scipen” - kara za pokaz naukowy. Od
help(options)
:Przykład:
To powiedziawszy, nadal uważam to za godne uwagi. Najbardziej bezpośrednim sposobem jest użycie
sprintf()
z wyraźną szerokością npsprintf("%.5f", ran2)
.źródło
options("scipen"=0, "digits"=7)
(są to wartości domyślne)options("scipen"=100, "digits"=4)
na górę kodu, i ten, który nie znajduje się poniżej ... z odpowiednimi notatkami. Może to być mylące dla kogoś, kto szuka szybkiego rozwiązania (a Google pokazuje w rezultacie pierwsze).Można to osiągnąć, wyłączając notację naukową w R.
źródło
Moja ulubiona odpowiedź:
To daje to, czego chcesz, bez konieczności grzebania w ustawieniach R.
Zauważ, że zwraca ciąg znaków zamiast obiektu liczbowego
źródło
justified = "none"
przeciwnym razie będą spacje wypełniające je na tej samej długości.format(1e6, scientific=FALSE)
zwraca"1000000"
podczasas.character(1e6)
powrotu"1e+06"
, więc istnieje różnica między tymi dwiema metodami.Umieścić
options(scipen = 999)
w pliku .Rprofile więc robi automatycznie wykonywana domyślnie . (Nie polegaj na robieniu tego ręcznie).(To mówi coś innego niż inne odpowiedzi: jak?
źródło