我正在運行代碼以生成輸出,我希望所有輸出都打印爲1位小數。然而,代碼使用我通常使用的函數,我不想在這些中指定打印輸出是舍入的。設置打印的默認小數位數
這個問題的答案Formatting Decimal places in R建議使用options(digits=2)
或round(x, digits=2)
。
第一種選擇是這是偉大的四捨五入1.234
到1.2
而是將打印12.345
爲12
如果把函數內的,但我不想去碰它們,第二種選擇將工作的一般設置。如何設置這一般?
我正在運行代碼以生成輸出,我希望所有輸出都打印爲1位小數。然而,代碼使用我通常使用的函數,我不想在這些中指定打印輸出是舍入的。設置打印的默認小數位數
這個問題的答案Formatting Decimal places in R建議使用options(digits=2)
或round(x, digits=2)
。
第一種選擇是這是偉大的四捨五入1.234
到1.2
而是將打印12.345
爲12
如果把函數內的,但我不想去碰它們,第二種選擇將工作的一般設置。如何設置這一般?
你可以這樣做:
print <- function(x, ...) {
if (is.numeric(x)) base::print(round(x, digits=2), ...)
else base::print(x, ...)
}
我喜歡formatC
與小數位的指定數量的打印數量。這樣,當digits = 1
和format = "f"
時,1
應始終打印爲"1.0"
。您可以爲類數字的對象創建S3打印方法,如下所示:
print.numeric<-function(x, digits = 1) formatC(x, digits = digits, format = "f")
print(1)
# [1] "1.0"
print(12.4)
# [1] "12.4"
print(c(1,4,6.987))
# [1] "1.0" "4.0" "7.0"
print(c(1,4,6.987), digits = 3)
# [1] "1.000" "4.000" "6.987"
感謝您的建議。在嘗試此我到達相同的問題設置選項(位數= 2) - '#load打印功能 X < - 12.34 Z =打印(X) [1] 12' - 有什麼我」失蹤了? – BuckyOH
您是否已將「數字」選項重置爲其默認值?在新的會議中再次嘗試。 –
那真是令人尷尬,現在似乎工作。謝謝。 – BuckyOH