Отсутствуют графики на Shiny Server, сгенерированные файлом R markdown - PullRequest
3 голосов
/ 02 апреля 2020

У меня есть файл уценки R, который я хотел бы иметь на своем корпоративном сервере Shiny.

Согласно R Уценка: исчерпывающее руководство Я могу добавить runtime: shiny к метаданные YAML вверху файла Rmd, чтобы превратить его в блестящий документ. Я сделал это, и это работает. Если я нажму «Запустить документ» в RStudio, он запустит Rmd, и я увижу отчет без проблем.

Мой проект находится в каталоге ShinyApps, где Shiny Server ищет приложения для обслуживания. , Когда я нажимаю на URL этого проекта, я получаю отчет без диаграмм . Я просто получаю значки с разбитыми изображениями там, где должны быть графики. (Я использую RStudio Server, так что это те же самые файлы, к которым обращаются RStudio и Shiny Server).

R версия 3.4.3, Shiny Server версия 1.5.6.875

ОБНОВЛЕНИЕ: У меня есть воспроизвел поведение на простейшем возможном примере. Я создал новый проект RStudio - простой проект - с именем TEST, расположенный в моем каталоге ShinyApps. Затем я создал новый файл R Markdown, который я назвал TEST.Rmd. Этот файл предварительно заполнен примером RMarkdown с использованием встроенных наборов данных cars и pressure. Я изменил заголовок YAML, чтобы включить runtime: shiny. Кнопка «вязать» RStudio заменяется кнопкой «Запустить документ», как и ожидалось, и нажатие этой кнопки запускает документ и работает как положено. Попытка просмотреть страницу через Shiny Server имеет ту же проблему, при которой сюжет не включен; значок сломанного изображения занимает его место.

ОБНОВЛЕНИЕ 2: По запросу, вот файл уценки. Это буквально пример файла, сгенерированного RStudio с добавлением runtime: shiny в заголовок YAML.

---
title: "Test RMarkdown"
author: "Michael Henry"
date: "4/6/2020"
output: html_document
runtime: shiny
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cars}
summary(cars)
```

## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

ОБНОВЛЕНИЕ 3: Итак, я отправился на поиски файла журнала для Shiny Server. У меня нет никаких привилегий администратора, поэтому я никогда не искал это раньше, но я нашел файл журнала, который включал это: /lib64/libpango-1.0.so.0: undefined symbol: g_log_structured_standard. Оказывается, в RHEL есть ошибка, в которой есть исправление, поэтому я обратился к администратору с просьбой применить исправление. После того, как это будет применено, я сообщу о том, решило ли это мою проблему.

ОБНОВЛЕНИЕ 4: Оказывается, мой RHEL-сервер обновлен; у него уже есть версия glib2, предложенная исправлением. То, что я все еще получаю эту ошибку, - это то, что мой администратор собирается перевести в Red Hat.

ОБНОВЛЕНИЕ 5: Поддержка Red Hat предполагала, что был еще один файл glib2, так что оказалось, что это был случай. Удаление этого файла решило проблему!

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Итак, я думаю, что вам может понадобиться добавить дополнительный код, чтобы приложение уценки работало так, как вы ожидаете в среде Shiny Server

, попробуйте заключить диаграммы и графики в следующее:

renderPlot({})

Это дает серверу приказ как запустить график, так и сделать его доступным для документа Shiny. Блестящий - странная вещь для программистов R.

Вы в основном вычисляете и создаете вещи в среде R и передаете их в Javascript / HTML, который должен знать на своем языке, что делать. renderPlot({}) сообщает компоненту JS, как продвигать вывод R. страница Shiny. enter image description here

Если вы все еще застряли после этого, потянитесь назад, и я постараюсь помочь устранить неполадку!

0 голосов
/ 16 апреля 2020

Поиск сообщения об ошибке: /lib64/libpango-1.0.so.0: undefined symbol: g_log_structured_standard привел к известной проблеме с RHEL, из-за которой в системе существовала более старая версия glib2, в которой не было символа g_log_structured_standard. В моем случае сервер был обновлен и имел правильную версию glib2, но была еще одна версия этой библиотеки, которая вызывала проблему.

Мораль этой истории: поиск регистрируйте файлы заранее и следуйте указаниям, содержащимся в них!

...