Wie formatieren Sie zahlen in R, die Angabe der Anzahl der signifikanten Ziffern, sondern halten signifikante Nullen und integer-Teil?

Habe ich Schwierigkeiten mit der Formatierung von zahlen in R mit dem, was ich fühle, sind sehr sinnvolle Regeln. Was ich möchte ist, um eine Anzahl von signifikanten stellen (sagen wir 3), halten signifikante Nullen, und halten Sie auch alle Ziffern vor dem Komma, einige Beispiele (mit 3 signifikanten Ziffern):

1.23456 -> "1.23"
12.3456 -> "12.3"
123.456 -> "123"
1234.56 -> "1235"
12345.6 -> "12346"
1.50000 -> "1.50"
1.49999 -> "1.50"

Gibt es eine Funktion in R, die diese Art der Formatierung? Wenn nicht, wie könnte es getan werden?

Empfinde ich diese durchaus sinnvolle Formatierung Regeln, doch habe ich noch nicht geschafft, die Funktion zu finden, die Formate in dieser Art und Weise, in R. soweit ich gegoogelt dies ist kein Duplikat von vielen ähnlichen Fragen, wie diese

Edit:

Inspiriert durch die beiden guten Antworten, die ich zusammen eine Funktion mir der ich glaube dass Sie funktioniert für alle Fälle:

sign_digits <- function(x,d){
  s <- format(x,digits=d)
  if(grepl("\\.", s) && ! grepl("e", s)) {
    n_sign_digits <- nchar(s) - 
      max( grepl("\\.", s), attr(regexpr("(^[-0.]*)", s), "match.length") )
    n_zeros <- max(0, d - n_sign_digits)
    s <- paste(s, paste(rep("0", n_zeros), collapse=""), sep="")
  }
  s
}
Schreibe einen Kommentar