Arrotondare i numeri in R al numero di cifre specificato

Ho un problema nell’arrotondare i numeri in R. Ho i seguenti dati e voglio arrotondarli a 8 cifre decimali.

structure(c(9.50863385275955e-05, 4.05702267762077e-06, 2.78921491976249e-05, 8.9107773737659e-05, 5.0672643927135e-06, 5.87776809485182e-05, 2.76421630542694e-05, 5.51662570625727e-05, 2.52790624570593e-05, 2.00407457671806e-05, 8.33373482160056e-05, 7.8297940825207e-05, 2.00407457671806e-05, 8.33373482160056e-05, 7.8297940825207e-05, 2.00407457671806e-05, 8.33373482160056e-05, 7.8297940825207e-05 ), .Names = c("CC/CC", "TT/CC", "CT/CC", "NC/CC", "CC/TT", "TT/TT", "CT/TT", "NC/TT", "CC/CT", "TT/CT", "CT/CT", "NC/CT")) 

Queste cifre sono sotto forma di esponente e voglio convertirle in numeri razionali con 8 posizioni decimali.

Per un controllo preciso sulla formattazione dei numeri, prova formatC()

 res <- structure(c(9.50863385275955e-05, 4.05702267762077e-06), .Names = c("CC/CC", "TT/CC")) formatC(res, format="f", digits=8) 

La funzione signif arrotonda ad un numero specifico di cifre significative (e la funzione round arrotonda ad un numero specifico di decimali).

 res <- structure(c(9.50863385275955e-05, 4.05702267762077e-06), .Names = c("CC/CC", "TT/CC")) signif(res, digits=8) 

Si noti che la stampa del risultato dipende da un'opzione, options(digits=7) ... È inoltre ansible specificare direttamente l'argomento digits da print :

 print(pi, digits=3) # 3.14 print(pi, digits=17) # 3.1415926535897931 

Ecco un esempio che illustra la differenza tra signif e round :

 x <- c(pi, pi*1000, pi/1000) round(x, 3) # 3.142 3141.593 0.003 signif(x, 3) # 3.14e+00 3.14e+03 3.14e-03