Bueno, aquí se nos juntan varias cosas....
En primer lugar, no es recomendable usar el viewer panel de RStudio (ni la
ejecución en ventana); lo que se recomienda es realizar la ejecución "External"
(es decir, lanzarlo al navegador por defecto). Hay muchas cosas que no te van a
funcionar si no usas un navegador externo. No en este caso tan sencillo...
aunque, si te fijas, cuando lo ejecutas contra el viewer panel te aparece el
siguiente error:
Listening on http://127.0.0.1:5615
ERROR: [on_request_read] connection reset by peer
Y ese error no aparece contra el navegador.
Eso por una parte.
Por otra parte, el valor de print(environment(show)) aparece justo antes del
error
Listening on http://127.0.0.1:5615
<environment: 0x000000000977ed20>
Warning: Error in func: app.R did not return a shiny.appobj object.
Stack trace (innermost first):
1: runApp
Error : app.R did not return a shiny.appobj object.
con lo cual consigues que se ejecute (porque estás trabajando con una instancia
en local del server) pero el programa (y esto ya es interpretación mía) te está
diciendo que no tiene ningún objeto que ejecutándolo en el servidor pueda
hacerlo llegar al ui (user interface). Insisto en lo de antes: si tienes en
servidor en Singapur y ejecutas tu ejemplo allí, qué crees que va a pasar con
esa instucción? se ejecutará? en caso de hacerlo... te devolverá algo? Y si no
usas un solo fichero app.R, sino dos (ui.R y server.R) ... dónde pretendes
poner esa instrucción? en global.R?
Mi opinión es que no funcionará (sobre todo porque el cliente es un navegador,
esa instrucción se ejecutaría en el servidor y no está asociada a un
renderPrint que le pase el valor a un verbatimTextOutput o similar.
O sea, que tendrías que manejar algo similar a esto.....
1.- En el "server" habría que incluir algo como esto
output$result<-renderPrint({environment(show)})
2.- En el "ui" lo capturaríamos con un
verbatimTextOutput("result")
Y ya para finalizar... a qué te refieres cuando dices que se te "reinicia" y
"aborta la sesión" el RStudio? Se cierra?
Un Saludo,
Miguel.
________________________________________
De: Juan Antonio Gil <[email protected]>
Enviado: lunes, 5 de marzo de 2018 11:25
Para: Rodríguez Muíños, Miguel Ángel; [email protected]
Asunto: Re: [R-es] problema con shiny
Hola Miguel-Ángel esa instrucción la he puesto para que no me haga el
break y se reinicie RStudio. Si quito esa instrucción y hago que se pase
la salida al wiewer panel de Rstudio me aparece el mismo error pero
además se aborta la sesión de RStudio y con la instrucción lo que cambia
es que no aborta la sesión.
Muchas gracias,
Juan
El 05/03/2018 a las 8:49, [email protected] escribió:
> Hola Juan.
>
> La verdad es que no te puedo dar una solución directa a tu problema pero tu
> enunciado me plantea algunas dudas (y quién sabe si eso puede llevarte a
> alguna parte).
>
> Veamos... Tienes un fichero app.R que ejecutas desde una instancia local de
> Shiny. Cuando usas un fichero app.R defines dos funciones (ui y server) y
> luego las lanzas con shinyApp(ui = ui, server = server). Lo que haces tú a
> mayores es incluir, despuès de la llamada a la app, una instrucción como
> esta: print(environment(show))
> Mi pregunta es la siguiente: Dónde se está ejecutando esa instrucción?
> De hecho, mi pregunta es otra: Si tuvieras un Shiny montado como
> cliente/servidor en dos máquinas distintas y usaras (en vez de app.R) dos
> ficheros ui.R y server.R ... dónde pondrías esa instrucción? Dónde tendría
> que ejecutárse? En el cliente? En el servidor?
>
> Ya sé que, en tu escenario, funciona.. pero no será porque esa instrucción se
> ejectuta localmente al hacer el break del shinyApp() ¿?
> Es eso lo que pretendes?
>
>
> Un Saludo,
> --
> Miguel Ángel Rodríguez Muíños
> Dirección Xeral de Saúde Pública
> Consellería de Sanidade
> Xunta de Galicia
> http://dxsp.sergas.es
>
________________________________
Nota: A información contida nesta mensaxe e os seus posibles documentos
adxuntos é privada e confidencial e está dirixida únicamente ó seu
destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por
favor elimínea. A distribución ou copia desta mensaxe non está autorizada.
Nota: La información contenida en este mensaje y sus posibles documentos
adjuntos es privada y confidencial y está dirigida únicamente a su
destinatario/a. Si usted no es el/la destinatario/a original de este mensaje,
por favor elimínelo. La distribución o copia de este mensaje no está autorizada.
See more languages: http://www.sergas.es/aviso-confidencialidad
_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es