如何在 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

更新於: 2021年11月6日

183 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告