如何在 R 中停止列印大數字的科學計數法?
當我們在 R 中編寫一個長數字時,預設情況下該數字的列印輸出將以科學計數法表示。為了停止這種列印行為,我們可以使用 sprintf 函式。
例如,如果我們有一個名為 df 的資料框,其中包含一個名為 X 的列,其中包含長數字,那麼我們可以使用以下命令停止以科學計數法列印這些數字:
df$X<-sprintf("%f",df$X)
示例 1
以下程式碼片段建立一個示例資料框:
x<-rpois(20,100000000000000) df1<-data.frame(x) df1
輸出
建立了以下資料框:
x 1 NA 2 NA 3 NA 4 NA 5 NA 6 NA 7 NA 8 NA 9 NA 10 NA 11 NA 12 NA 13 NA 14 NA 15 NA 16 NA 17 NA 18 NA 19 NA 20 NA
要列印包含所有數字的 x 的值,請將以下程式碼新增到上述程式碼片段中:
df1$x<-sprintf("%f",df1$x) df1
輸出
如果您將以上所有程式碼作為單個程式執行,則會生成以下輸出:
x 1 100000002878004.000000 2 100000006073034.000000 3 100000015081157.000000 4 99999991070780.000000 5 100000001649055.000000 6 100000008293503.000000 7 100000002065917.000000 8 100000001116032.000000 9 99999995600778.000000 10 100000003840096.000000 11 99999989811240.000000 12 99999993682758.000000 13 99999987127237.000000 14 100000004413443.000000 15 99999997385728.000000 16 100000004964710.000000 17 99999987378461.000000 18 100000013440743.000000 19 100000005847206.000000 20 100000019558343.000000
示例 2
以下程式碼片段建立一個示例資料框:
y<-rpois(20,123574125541235) df2<-data.frame(y) df2
輸出
建立了以下資料框:
y 1 NA 2 NA 3 NA 4 NA 5 NA 6 NA 7 NA 8 NA 9 NA 10 NA 11 NA 12 NA 13 NA 14 NA 15 NA 16 NA 17 NA 18 NA 19 NA 20 NA
要列印包含所有數字的 y 的值,請將以下程式碼新增到上述程式碼片段中:
df2$y<-sprintf("%f",df2$y) df2
輸出
如果您將以上所有程式碼作為單個程式執行,則會生成以下輸出:
y 1 123574119946324.000000 2 123574123392734.000000 3 123574141533986.000000 4 123574126127884.000000 5 123574127737879.000000 6 123574117603698.000000 7 123574125442109.000000 8 123574128811340.000000 9 123574111352873.000000 10 123574117712696.000000 11 123574129555656.000000 12 123574123416637.000000 13 123574129492703.000000 14 123574127602845.000000 15 123574147713179.000000 16 123574133125007.000000 17 123574131515857.000000 18 123574128446719.000000 19 123574116541207.000000 20 123574133423019.000000
廣告