0

我注意到R 3.5.1中 RStudio笔记本的奇怪行为。我可以使用以下代码重现该行为:

list()
head(iris)

首先,应该打印一个空列表。然后,如果在相同或另一个代码块中打印任何数据帧,则其值将包含在此打印屏幕中的附加符号(一些用箭头指示)中。

在 R 3.5.1 中:

在此处输入图像描述

此行为可能与 R 列表的此问题有关。它存在于笔记本中,如果代码在控制台运行或文档被编织,它就会消失。在 R 3.4.4 中,这个问题也不存在。如果在列表和数据框之间运行其他代码,问题也会消失,例如:

list()
1
head(iris)

我有这些问题:

  1. 我使用 Windows。Linux 和 Mac OS 用户能否重现该问题?
  2. 如何解释输出失真的原因?
  3. 如果我希望将来解决该问题,我应该在哪里报告?

Session info ---------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.5.1 (2018-07-02)
 system   x86_64, mingw32             
 ui       RStudio (1.1.453)           
 language (EN)                        
 collate  English_United States.1252  
 tz       Europe/Helsinki             
 date     2018-07-15                  

Packages -------------------------------------------------------------------------------------------
 package   * version date       source                          
 base      * 3.5.1   2018-07-02 local                           
 compiler    3.5.1   2018-07-02 local                           
 datasets  * 3.5.1   2018-07-02 local                           
 devtools    1.13.6  2018-06-27 CRAN (R 3.5.0)                  
 digest      0.6.15  2018-01-28 CRAN (R 3.5.0)                  
 graphics  * 3.5.1   2018-07-02 local                           
 grDevices * 3.5.1   2018-07-02 local                           
 knitr       1.20.8  2018-07-07 Github (yihui/knitr@89b34a6)    
 memoise     1.1.0   2017-04-21 CRAN (R 3.5.0)                  
 methods   * 3.5.1   2018-07-02 local                           
 stats     * 3.5.1   2018-07-02 local                           
 tools       3.5.1   2018-07-02 local                           
 utils     * 3.5.1   2018-07-02 local                           
 withr       2.1.2   2018-06-28 Github (jimhester/withr@fe56f20)
 xfun        0.3     2018-07-06 CRAN (R 3.5.0)                  
 yaml        2.1.19  2018-05-01 CRAN (R 3.5.0)  
4

1 回答 1

1

看来这是一个影响在 Windows 上使用 R 3.5.1 的 GUI 应用程序(例如 RGui 和 RStudio)的错误。例如,您可以看到类似的效果:

x <- 1
print(list())
save(x, file = tempfile())
output <- encodeString("apple")
print(output)

采购这给了我:

> source('~/encoding.R')
list()
[1] "\002ÿþapple\003ÿþ"

我们将在 RStudio 的下一个版本中进行修复,但目前的解决方法是避免在 R 中打印数据帧之前打印空列表。

于 2018-07-16T20:22:02.847 回答