Странный (искаженный) вывод в блокноте RStudio в R 3.5.1

Я заметил странное поведение в ноутбуке RStudio в R 3.5.1. Я могу воспроизвести поведение, используя этот код:

list()
head(iris)

Сначала должен быть напечатан пустой список. Затем, если какой-либо фрейм данных печатается либо в том же, либо в другом фрагменте кода, его значения заключаются в дополнительные символы (некоторые из них отмечены стрелками), как на этом экране печати.

In 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)  

person GegznaV    schedule 14.07.2018    source источник
comment
Я не нахожу эту проблему в R 3.5.1 на MacBook Pro. Стрелки нет, и значения печатаются правильно, когда вы нажимаете на стрелку Запустить текущий чанк   -  person akrun    schedule 15.07.2018
comment
Пробовала без вязания и спицами, мне и то и другое подходит   -  person akrun    schedule 15.07.2018
comment
Можете ли вы предоставить свой sessionInfo() на случай, если что-то зависит от локали?   -  person Kevin Ushey    schedule 15.07.2018
comment
@ Кевин Уши, я обновил вопрос, указав информацию, которую вы просили.   -  person GegznaV    schedule 15.07.2018
comment
Загружено много пакетов. Решает ли проблему перезагрузка и загрузка только соответствующих пакетов?   -  person jay.sf    schedule 15.07.2018
comment
@jaySf Я работал над проектом по машинному обучению. Но когда я закрыл проект, я все еще могу воспроизвести проблему. Список пакетов теперь меньше. Спасибо за ваше замечание.   -  person GegznaV    schedule 15.07.2018


Ответы (1)


Похоже, что это ошибка, которая затрагивает приложения с графическим интерфейсом, использующие R 3.5.1 в Windows (например, 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.

person Kevin Ushey    schedule 16.07.2018
comment
Это ошибка R - вы можете увидеть ту же проблему, например, в RGui 3.5.1 (попробуйте запустить код в моем ответе там). К счастью, мы можем обойти эту конкретную проблему на стороне RStudio. - person Kevin Ushey; 17.07.2018
comment
К счастью, это будет исправлено в следующих версиях R-patched и R-devel благодаря быстрой работе Томаса Калиберы (одного из участников R-core). - person Kevin Ushey; 18.07.2018