2017-01-09 2 views
3

Ich benutze ordentlich, um die Chunks meiner rMarkdown-Datei zu formatieren. Wie kann ich verhindern, dass Rufnummern, besonders lange Rufnummern, ordentlich formatiert werden? Zum Beispiel:Verhindern der Zahlenformatierung bei der Verwendung von Tidy

set.seed(3585) 
n=10000 
loginkomens_prog1 = c(rep(10,0.3*n), rnorm(0.7*n, mean=11, sd=1)) 
inkomens_prog1 = exp(loginkomens_prog1) 
inkomens_prog1[inkomens_prog1>100000]=100000 
par(mfrow=c(1,2)) 
hist(inkomens_prog1,main="Programma1",xlim=c(0,200000)) 

Tidy umformatieren es, wie folgt aus:

set.seed(3585) 
n = 10000 
loginkomens_prog1 = c(rep(10, 0.3 * n), rnorm(0.7 * n, mean = 11, 
    sd = 1)) 
inkomens_prog1 = exp(loginkomens_prog1) 
inkomens_prog1[inkomens_prog1 > 1e+05] = 1e+05 
par(mfrow = c(1, 2)) 
hist(inkomens_prog1, main = "Programma1", xlim = c(0, 2e+05)) 

Ich würde es vorziehen, dass es 100000 statt 1e + 05 bleibt. Ist es möglich? Oder ist es besser, dass ich tidy=FALSE für diesen Chunk gesetzt habe (und dass ich es manuell formatiere)?

Antwort

1

tidy_source aus dem formatR Paket wird verwendet, um den Inhalt aufzuräumen, und was es schließlich tut, ist cat() der Ausgang.

Also, Ihre Nummer zu verhindern, dass die wissenschaftliche Notation umgewandelt zu werden, können Sie die Option scipen entsprechend eingestellt werden (siehe zum Beispiel How to disable scientific notation in R?).

Beispiel:

temp <- tempfile(fileext = ".R") 
cat("inkomens_prog1[inkomens_prog1>100000]=100000", file = temp) 

formatR::tidy_source(temp) 
# inkomens_prog1[inkomens_prog1 > 1e+05] = 1e+05 

options(scipen = 99) 
formatR::tidy_source(temp) 
# inkomens_prog1[inkomens_prog1 > 100000] = 100000 
+0

Danke, ich habe über die wissenschaftliche Schreibweise nicht gedacht! Um die Dinge sauberer aussehen zu lassen, habe ich 'tidy.opts = options (scipen = 99)' zu meinem R-Chunk hinzugefügt. – Karting06

Verwandte Themen