[英]Rounding small floating point numbers
假設我有一個數字向量,我想四舍五入為“更漂亮”的數字,例如:
vec <- c(1.739362e-08,8.782537e-08,0.5339712)
我希望它是:
pretty.vec <- c(1.74e-08,8.78e-08,0.53)
我該如何實現? 使用round
並沒有真正的幫助,因為它會將前兩個元素四舍五入為0:
> round(vec,2)
[1] 0.00 0.00 0.53
那?signif
呢? (根據您的應用程序,您還可以使用print(...,digits=3)
)
vec <- c(1.739362e-08,8.782537e-08,0.5339712)
signif(vec,digits=3)
## [1] 1.74e-08 8.78e-08 5.34e-01
print(vec,digits=3)
## [1] 1.74e-08 8.78e-08 5.34e-01
要讓R以不同的方式格式化向量的元素是相當困難的:通常假定您想要這種一致性。
print(sprintf("%1.3g",vec),quote=FALSE)
## [1] 1.74e-08 8.78e-08 0.534
也相關: ?format
, ?options
(請參閱“ scipen”)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.