代码之家  ›  专栏  ›  技术社区  ›  RMacey

相同的Excel数据,相同的.RMD文件,不同的标记结果

  •  1
  • RMacey  · 技术社区  · 6 年前

    问题:相同的代码,相同的数据,但不同的输出。
    我最近雇了一个人,把他安排在R。当我们试图用相同的.rmd文件和相同的数据编织一个.pdf文件时,我们会得到不同的结果。简而言之,代码读取一个Excel文件并从其中一个单元格中写出一个值。从我的电脑,输出是“100000”。在他的电脑上,显示为“1e+05”。问题是,我如何使两台计算机的输出“100000”?当你看代码的时候你会发现我正在用代码打印一个向量

    av$PreTaxValue <- prettyNum(round(av$PreTaxValue, 0), big.mark = ",")
    

    我觉得奇怪的是向量中的一个数字是科学记数法,而另一个值是逗号。

    我把标记(.rmd)文件、Excel数据和两个(每台计算机一个)PDF输出文件放在 Github repo . 当编织时,.rmd创建一个.pdf文件。Control.xlsx工作簿包含数据。pdf有我认为应该的输出方式。应税行,税前值列有“100000”。在debug.pdf中,此值显示为“1e05”

    感谢任何帮助。其他详细信息:我们都安装了tinytex。下面是我们正在使用的版本的信息。

    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"   
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   duckmayr    5 年前

    作为 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"