问题:代码相同,数据相同但输出不同。
我最近雇用了一个人,并在R上设置了他。当我们尝试使用具有相同数据的相同.rmd文件编织.pdf文件时,会得到不同的结果。简而言之,该代码读取一个Excel文件并从其中一个单元格中写出一个值。从我的PC上,输出为“ 100,000”。在他的PC上,它显示为“ 1e + 05”。问题是如何使两台计算机的输出都为“ 100,000”?在查看代码时,您会看到我正在使用代码打印矢量
av$PreTaxValue <- prettyNum(round(av$PreTaxValue, 0), big.mark = ",")
我很奇怪向量中的一个数字是科学计数法,而另一个值是逗号。
我将markdown(.rmd)文件,Excel数据和两个(每台计算机一个).PDF输出文件放入了Github repo。编织时,.rmd创建一个.pdf。 Control.xlsx工作簿具有数据。 debug1.pdf具有我认为应该的输出方式。 “应课税”行的PreTaxvValue列具有“ 100,000”。在debug.pdf中,该值显示为“ 1e05”
R.Version() from my PC produces:
$platform
[1] "x86_64-w64-mingw32"
$arch
[1] "x86_64"
$os
[1] "mingw32"
$system
[1] "x86_64, mingw32"
$status
[1] ""
$major
[1] "3"
$minor
[1] "5.1"
$year
[1] "2018"
$month
[1] "07"
$day
[1] "02"
$svn rev
[1] "74947"
$language
[1] "R"
$version.string
[1] "R version 3.5.1 (2018-07-02)"
$nickname
[1] "Feather Spray"
From my colleague's PC: R.Version() produces:
$platform
[1] "x86_64-w64-mingw32"
$arch
[1] "x86_64"
$os
[1] "mingw32"
$system
[1] "x86_64, mingw32"
$status
[1] ""
$major
[1] "3"
$minor
[1] "5.1"
$year
[1] "2018"
$month
[1] "07"
$day
[1] "02"
$svn rev
[1] "74947"
$language
[1] "R"
$version.string
[1] "R version 3.5.1 (2018-07-02)"
$nickname
[1] "Feather Spray"
答案 0 :(得分:1)
如评论中的Alaleh A所述,您可以通过更改全局scipen
选项来实质上禁用科学计数法:
options(scipen=100)
,如this Stack Overflow question中所述。但是,如果您不希望将其设置为全局设置,则可以更改
prettyNum(round(av$PreTaxValue, 0), big.mark = ",")
到
prettyNum(format(round(av$PreTaxValue, 0), scientific = FALSE), big.mark = ",")
(对于av$AfterTaxValue
也是如此)。请考虑以下内容:
x = 100000.00
prettyNum(round(x, 0), big.mark = ",")
#> [1] "1e+05"
prettyNum(format(round(x, 0), scientific = FALSE), big.mark = ",")
#> [1] "100,000"
由reprex package(v0.2.1)于2018-10-07创建