为什么R轮功能不是大数字

roc*_*ist 15 math statistics r rounding

我需要一个R函数,它始终返回小数点后面的相同位数,无论参数有多大.我试过round()但是这样做不起作用.这是我的例子:

Rweb:> round(111234.678912,4) # expect 111234.6789
[1] 111234.7 
Rweb:> round(111234.678912/10,4) # expect 11123.4679    
[1] 11123.47 
Rweb:> round(111234.678912/100,4) # expect 1112.3468      
[1] 1112.347 
Rweb:> round(111234.678912/1000,4)     
[1] 111.2347 
Rweb:> round(111234.678912/10000,4)     
[1] 11.1235 
Run Code Online (Sandbox Code Playgroud)

如果参数是指数格式但我需要使用浮动格式的数字,它确实有效.

Dav*_*son 14

确实轮数为正确的位数.但是,R对显示的非常大的数字的位数有限制.那就是 - 那些数字在那里,它们只是没有显示.

你可以这样看:

> round(111234.678912,4)
[1] 111234.7
> round(111234.678912,4) - 111234
[1] 0.6789
Run Code Online (Sandbox Code Playgroud)

您可以使用formatC任何所需的位数来显示它:

> n = round(111234.678912,4)
> formatC(n, format="f")
[1] "111234.6789"
> formatC(n, format="f", digits=2)
[1] "111234.68"
Run Code Online (Sandbox Code Playgroud)

正如@mnel指出的那样,您还可以使用以下方法设置显示的位数(包括小数点左侧的位数)options:

> options(digits=6)
> round(111234.678912,4)
[1] 111235
> options(digits=10)
> round(111234.678912,4)
[1] 111234.6789
Run Code Online (Sandbox Code Playgroud)

  • 可能值得注意的是可以通过设置`options(digits)`来改变数字 (2认同)